Wie schon gesagt wurde, moderne Dateisysteme löschen beim Löschen nicht etwa die Daten, sondern markieren die von den Daten belegten Blöcke im Dateisystem einfach als "leer". Solange keine neuen Daten in die Blöcke geschrieben werden, sind die alten Daten noch vorhanden und können ausgelesen und damit wiederhergestellt werden.
Überschreibst du bei einer normalen Festplatte gezielt einen Block (mit entsprechenden Tools), dann wird auch genau dieser Block überschrieben und die alten Daten sind weg. Dabei reicht bei heutigen Festplatten auch einmaliges Überschreiben.
Bei SSDs sieht die Sache aber anders aus, Stichwort "wear leveling". Wurde der SSD vom Betriebssystem über den TRIM Mechanismus mitgeteilt, dass bestimmte Blöcke "gelöscht" sind, kann es gut sein, dass der SSD Controller diese Blöcke zukünftig unter einer anderen Adresse wiederverwendet. Das wird gemacht, damit die Speicherzellen der SSD möglichst gleichmäßig "verbraucht" werden.
Selbst wenn du die gesamte SSD mit Nullen überschreibst (unter Linux mit dd z.B.), könnten noch alte, gelöschte Daten in Reserveblöcken liegen. Wenn du halbwegs sichergehen willst, dass deine Daten weg sind (weil du die SSD verkaufen willst oder so), dann mach einen "secure erase"... dann sind aber alle Daten weg und niemand kann oder wird dir garantieren, dass die SSD wirklich alle Blöcke (inklusive Reservebereich etc) gelöscht hat.