Depois de realizar mais pesquisas, encontrei duas soluções diferentes. Vou postar aqui para qualquer um que tenha um problema semelhante no futuro:
Solução # 1
Como por este post no AskUbuntu , o atual script em si precisa ser originado, então ao invés de:
bash myscript.sh
Precisa ser:
source myscript.sh
A explicação completa de por que isso precisa acontecer está no link acima.
Solução # 2
É muito mais fácil. Em vez de ativar o ambiente virtual e executar:
python manage.py my_command
Você simplesmente executa:
/path/to/virtual/env/bin/python manage.py my_command
Dessa forma, você não precisa se preocupar com a ativação do ambiente virtual e as variáveis de ambiente definidas em seu virtualenv estarão lá.