Documentação de base incorporada help read
menciona:
-t timeout time out and return failure if a complete line of input is
not read withint TIMEOUT seconds. The value of the TMOUT
variable is the default timeout. TIMEOUT may be a
fractional number. If TIMEOUT is 0, read returns success only
if input is available on the specified file descriptor. The
exit status is greater than 128 if the timeout is exceeded
Como read
falhará se retornar porque o tempo limite foi atingido,
tal condição também fará com que seu loop saia. Se você quiser
Para evitar isso, você pode ignorar o status de saída de read
da seguinte forma:
while read -t 60 line || true; do
...
done
ou
while true; do
read -t 60 line
...
done