.bashrc é executado apenas por shells interativos, não por scripts¹. É o lugar errado para definir variáveis de ambiente. Veja Existe um arquivo equivalente ".bashrc" lido por todos os shells? e o wiki do Ubuntu .
Você pode dizer ao bash para ler .bashrc explicitamente. É claro que você terá que executar bash , não sh , que pode ser um shell diferente:
sudo -i -u username bash -c '. '~/.bashrc; echo "$MY_ENV"'
Mas é uma má ideia porque os arquivos .bashrc provavelmente contêm coisas que assumem que são executadas em um terminal e que gastam tempo configurando associações de teclas, aliases, prompts, etc.
A solução sã é colocar as definições de variáveis de ambiente onde elas pertencem, em ~/.profile ou ~/.pam_environment .
¹ Exceto quando o bash é chamado por sshd por algum motivo estranho.