I believe that is because you are trying to interpret expect commands with sh.
What I would do is the following. Save your script with the standard expect file extension .exp (this is just for clarity), make it an executable, and then just run it from your shell.
mv aaa.sh aaa.exp
chmod u+x aaa.exp
./aaa.exp
You have already let your script know where the expect binary is located, so that should be enough for you.
Let me know how that works out for you.