Eu tenho um problema semelhante em um sistema que uso (o shell padrão é bash , quero ksh93 e chsh não funciona).
Minha solução, adaptada para sua situação, é exec do shell desejado de ~/.profile , que Dash lê na inicialização. O Bash não toca em ~/.profile a menos que não encontre ~/.bash_profile ou ~/.bash_login (nessa ordem, veja o manual do Bash).
# in ~/.profile:
if [ "$SHELL" != "/usr/bin/bash" -a -n "$SSH_TTY" -a -x /usr/bin/bash ]; then
export SHELL="/usr/bin/bash"
exec $SHELL -l
fi
O SSH define SSH_TTY em sessões SSH interativas, portanto, estamos verificando se está definido (string não vazia) antes de garantir que o Bash esteja disponível e executando-o. Estou definindo e exportando SHELL no caso de qualquer outro aplicativo olhar para ele e para evitar que o Bash seja executado em um loop infinito devido à falta de ~/.bash_profile e ~/.bash_login e, assim, tentar executar ~/.profile novamente.