When you run an external command using :! in NeoVim, it doesn't get connected to a terminal, which means it can't take input from the user.
From :help :! in NeoVim:
The command runs in a non-interactive shell connected to a pipe (not a terminal). Use :terminal to run an interactive shell connected to a terminal.
Note that this is NeoVim-specific. In ...