su -c "echo $hi" bela expande para as palavras su , -c , echo e bela . Como a variável hi não está definida no seu shell atual, sua expansão está vazia. O comando que é executado como usuário bela é echo .
Correção: su -c 'echo $hi' bela , com as aspas simples protegendo o $ da expansão ... Não. O arquivo .bashrc é lido apenas por shells interativos. Quando você executa su -c 'echo $hi' bela , isso executa echo $hi como usuário bela . Mas como nada está definindo a variável hi , o comando echo $hi se expande para echo , o que ainda não imprime nada.