Eu ainda não sei porque isso é assim, mas tem algo a ver com a forma como diferentes shells executam e tratam os sinais. Aparentemente, parece que esta é alguma solução:
sh -c "timeout --foreground -k 1 5 ./myscript"
O mesmo com sudo bash
:
sudo bash -c "timeout --foreground -k 1 5 ./myscript"
man timeout
explica isso:
--foreground
when not running timeout directly from a shell prompt,
allow COMMAND to read from the TTY and get TTY signals; in this
mode, children of COMMAND will not be timed out
Não tenho certeza do que isso significa, nem quais são as consequências, mas talvez isso ajude você ou outra pessoa a explicar.