Na parte superior do script activate , você precisa fornecer a fonte e não pode executá-la diretamente. O que ele faz é alterar algumas coisas na sessão de bash na qual o arquivo é originado.
No seu caso, bash é o bash invocado executando o script venv_python3.sh , não o bash do qual você está digitando interativamente.
O que você poderia fazer é criar uma função bash (ou um alias) que faça o sourcing para você, então o 'sourcing' aconteceria com o seu bash interativo.
No entanto, eu recomendo que você olhe virtualenvwrapper , o que torna o trabalho com vários virtualenvs muito mais fácil e pode resolver o problema ' problema 'para o qual você criou este script em primeiro lugar.