Isso porque você está fazendo:
if [ expr $n % 2 -eq 0 ]
Como assim?
Porque
rem='expr $n % 2'
está atribuindo a variável rem como string expr $n % 2 .
Você precisa de substituição de comando:
rem=$(expr $n % 2)
Use também o operador aritmético nativo de bash em vez de expr :
rem=$(( $n % 2 ))