Quando você executa um script como um argumento para shell, como você está fazendo:
sh a.sh
o shebang será ignorado e o script a.sh será interpretado por sh . Como não há nenhum comando como spawn em seu sistema ( spawn é expect specific command), o shell está lançando o erro fornecido.
Dado que seu shebang é #!/usr/bin/expect , não está claro o que você está tentando fazer, pois você tem muitos (todos, exceto spawn ) não expect de comandos específicos no script.