Como o página link by @steeldriver explica, estouro aritmético é um fato da vida em Bash. Você poderia, em vez disso:
- use uma linguagem que suporte números de tamanho arbitrário fora da caixa, como (acredito) Haskell, Lisp ou Scheme,
- use uma linguagem que lançará uma exceção no estouro aritmético, como Java ou Rust,
- verificar se o produto diminuiu após cada operação (desde que todos os seus números sejam positivos) ou
- repensar sua abordagem para que você não precise multiplicar todos os números de uma vez (o que nem sempre é possível).