Se você executar o script como
./test.sh
ele é executado em seu próprio shell não interativo, não no shell interativo atual. Você precisaria
. ./test.sh
que é equivalente ao
source ./test.sh
no seu segundo exemplo.
Veja Qual é a diferença entre o sourcing ('.' ou 'source') e a execução de um arquivo no bash?
Quanto a echo "$bb"
, a expansão de parâmetro não expande aliases :
Aliases allow a string to be substituted for a word when it is used as the first word of a simple command.