Como todo o bloco while ... done tem stdin redirecionado (indiretamente por meio de um canal e depois) do arquivo possibleFiles.txt , cada comando dentro desse bloco herda o mesmo stdin . Então, enquanto isso é o que você quer para read , isso não é o que você quer para askDelete , porque ele está comendo uma linha de entrada do mesmo possibleFiles.txt usado por read .
Felizmente, o tty (seu terminal) ainda está disponível em /dev/tty . Basta substituir o loop askDelete por askDelete </dev/tty e tudo deve funcionar como pretendido.
Você ainda deve adicionar mais verificações: por exemplo, este programa não pode ser executado fora de um terminal (fornecendo respostas pré-preenchidas com outro arquivo) com essa simples correção porque /dev/tty não funcionará mais: você tem que encontrar maneiras de não "sobrescrever" stdin .