This took me a very long time to figure out.
When committing files to git, the file permissions are also committed. https://github.com/BenHall/heroku-buildpack-mono/commit/cb85e7fbc6e3f9cc646e7e3394d67419d1dbdfe4#bin/detect
What this means is that when you clone the git repository, it has the nessary file permissions required to be executed. What it also means is if you don’t commit the files with the correct permissions, nothing works.