Porque en realidad no estás borrando la memoria real.
Te lo ejemplifico:
Imagínate que eres pintor, pintas con spray desde 1 metro de distancia y tienes un cuadro. Pintaste un cuadro de rojo y lo quieres borrar escribiéndole uno verde encima. Le das una pasada de spray verde y habrás pintado una buena parte del rojo que había debajo, pero no lo pintaste todo. Es decir, ahora tienes rojo y verde mezclados. Si vuelves a darle otro chorro de spray desde un metro, habrás pintsod un poco mas del rojo de verde. Cuantas mas veces le des al spray, mas acabaras tapando el rojo con verde.
Que pasa si solo le das una pintada y tapas bastante del rojo? Pues que pueden quedar las esquinas sin pintar, asique el que investigue, al ver las 4 esquinas y saber que es común pintar cuadrados, sabrá que a pesar de que pintaste de verde, antes había un cuadrado rojo ahí.
Cómo se traduce esto a la informática?
Cuando llenas el contenido de un archivo con otra cosa (ceros), le estás diciendo al sistema, tenía un archivo con X contenido que ya no me interesa, ahora quiero otro nuevo lleno de ceros. Entonces es el sistema el encargado de hacer lo que le parezca mas adecuado según como esté programado. A veces es mas eficiente ignorar completamente el espacio de memoria en donde estaba el archivo que quieres sobrescribir y simplemente lo marca como "borrado" y crea lo sobrescrito en otro lugar de memoria independiente, dejando todos los datos del archivo antiguo sin tocar. Esto se puede hacer así, porque es mas rápido (y los discos duros trabajan menos) escribir en un archivo: ESPACIO_REUSABLE que cambiar todo el contenido del archivo.
Imagínate si cada vez que borras un archivo de un tera lo que tardaría el sistema en cambiar todos los bytes. Cada vez que borrases un archivo, sería casi tan lento como formatear el disco. Los discos durarían menos, etc. Mas eficiente marcarlo como espacio disponible y dejar el contenido en el disco sin rescribir en el.
Con shred, lo que se trata es de escribir múltiples veces para que sea mas probable que se sobrescriba (reuse) parte de la memoria original en la que estaba el archivo. Esto está muy lejos de ser un método 100% seguro.
Al final, tu no escribes directamente en memoria, delegas en el sistema que lo haga él por eficiencia. El problema de fragmentación del disco se da por este mismo motivo. Si tenías un archivo de 1kb y lo sobrescribes con uno de 0.8kb, es posible que el sistema decida reusar ese espacio y se te queden 0.2 kb que nunca se van a llenar. A lo largo del tiempo acabarás con muchos trozos pequeños así sin uso y el sistema tiene que andar a saltos por el sistema de ficheros (tardando mas en leer archivos).
En resumen, tu no escribes directamente en el disco. Tu escribes en el sistema de ficheros. Es el sistema operativo el que decide en que lugar real del disco debe escribirlo. Dejando archivos escritos en el disco real, aunque estos archivos ya no existan en el sistema de ficheros.
Cuando un disco tiene un trozo físico defectuoso, (imagínate por ejemplo que le dieses un pinchazo con una aguja) puedes incluso indicarle al sistema de ficheros que no lo use. Asique como ves, por mucho que escribas ficheros, y borres, jamás eliminarás la información de ese sector, porque el sistema no lo está usando. Alguien podría mappear ese sector a conciencia y recuperar la información de ese sector que no volviste a usar. Algo así pasa cuando borras el archivo pero el sistema decide escribirlo en otro lugar. Puedes tirarte años borrando y escribiendo archivos, y que puedas recuperar del disco archivos intactos del 2011 xD
Si quieres borrar de verdad, tienes que escribir todo a ceros en un formateo de medio nivel. El formateo que hace por ejemplo windows, lo único que hace es borrar el sistema de ficheros y algunos archivos internos. Es decir el 99% de la información que formateaste sigue ahí, y si no escribes nada en el disco, la puedes recuperar prácticamente al 100%.
Ni siquiera el borrado a medio nivel es garantía de borrado 100%. Puede haber partes de memoria interna del disco que no estén accesibles y se usen para funcionamiento interno del disco. Incluso se rumorea que el disco queda magnetizado y aún escrito a ceros se pueden leer las microfracturas del disco y las magnetización y recuperar datos. No sé como de real es esto, pero bajo mi opinión tiene bastante verosimilitud. Porque los máximos expertos en seguridad de los gobiernos utilizan máquinas desimantadoras que pueden costar entre 800$ y 6000$ para borrar los discos usando magnetismo.
Tengo constancia de denuncias a juzgados donde reportan que le modificaron datos y fechas en el disco y que cuando reclamaron el disco incautado para que la defensa aportase una prueba pericial, confirmarles que el disco ha sido borrado con imanes de neodimio y no hay forma de recuperar las pruebas.