bash: ./my-script.py: /usr/bin/env: bad interpreter: Permission denied
The partition your script lives on may be mounted with the "user" option set. "user" implies "noexec" (see the manpage for "mount"), which is going to keep you from running executables. And while running a binary executable from this kind of partition fails more clearly, trying to run a script with a shebang gives you this more confusing error message.
To fix! Add "exec" after your "user" flag in /etc/fstab. (again, see "man mount").