A aritmética de bash é feita sobre inteiros de 64 bits assinados, então o número máximo é:
$ max=$(( (1<<63) - 1 )); echo "$max"
9 223 372 036 854 775 807
Se você passar por cima, você começa do lado oposto, isso é números negativos.
$ echo $(( $max + 1 ))
-9 223 372 036 854 775 808
Isso é exatamente como o estouro de inteiros é gerenciado na linguagem C.
Para fatorials, 20!
ainda está abaixo, mas não 21!