Esse comportamento é causado pelo fato de que o cálculo é feito pelo próprio shell, não por um comando externo. Para redirecionar o STDERR do shell, você precisa iniciá-lo com esse redirecionamento, mas depois perde todos os seus erros. bash 2> /dev/null
Ou você usa um grupo de chaves, que eu acho que é uma solução mais apropriada:
{ a=$(( val1 / val2 } )); } 2> /dev/null