bash
não pode lidar com aritmética não inteira. Ele lhe dará um resultado correto, desde que todas as expressões sejam números inteiros. Então você precisa evitar um valor não-inteiro em algum lugar no seu cálculo.
No seu caso 1 / 5
cria um valor não inteiro e o bash falha nas operações posteriores. Precedência da divisão e multiplicação são os mesmos e precedentes operadores precedentes são sempre executados da esquerda para a direita quando são colocados em a expressão.
Um trabalho em torno será fazer a multiplicação primeiro e depois a divisão de modo que o bash nunca tenha que manipular o valor não-inteiro. A expressão corrigida será,
$ max=5; for e in $(seq 1 1 $max); do percent=$(( $e*100/$max )); echo "echo $e / $max : = $percent"; done
echo 1 / 5 : = 20
echo 2 / 5 : = 40
echo 3 / 5 : = 60
echo 4 / 5 : = 80
echo 5 / 5 : = 100