É devido à forma como os nomes dos arquivos e os dados do arquivo são separados. Quando você exclui um arquivo, você está excluindo uma referência nomeada (link físico) para os dados, não para os dados em si. Quando todas as referências sumirem do sistema de arquivos, o kernel irá adiante e liberará os dados - mas somente se nenhum processo em execução tiver o arquivo aberto. Até lá, o arquivo não é realmente excluído, ele não está mais disponível por meio de seu nome de arquivo.