Não é considerado uma prática ruim não usar $ para variáveis dentro da avaliação aritmética. Quanto à portabilidade, ((…)) em geral não é POSIX, então não funcionará em shells como o dash. Ele funcionará em zsh e ksh. Por outro lado, $((…)) está em POSIX e funciona em todas as shells modernas sh-style.