Eu encontrei uma solução olhando para a página do manual. Você precisa usar timeout --foreground 120s
para que seu comando aceite entrada do usuário quando executado em um script bash.
Eu preciso executar um comando com tempo limite para que seja cancelado após o X time.
Eu tenho feito testes e só funciona quando digitado no terminal diretamente, quando em um script bash parece não lidar com a entrada do usuário como se não fosse "recebê-lo"