Ao iniciar um script (como um comando), ele verifica o hash-bang ( #! ) para saber o que usar para iniciar o script. No seu script, aposto que começa com #!/usr/bin/python ou similar. Quando você inicia como ./script.py , lê a primeira linha e executa /usr/bin/python ./script.py secretamente.
Se você o preceder usando bash ./script.py , ele espera que o interpretador seja Bash, não Python.