Автоатическое определение интерпретатора и т.п. это конечно отлично упрощает жизнь но такое применимо только на машине разработчика, при деплое приложения такой способ не должен применяется.
Так что если вы разрабатываете у себя локально делайте что хотите, если начали писать bash скрипты, ансибл, чиф и т.п. то там применяете полную конструкцию с явным указание интерпретатора иначе людям которым вы предоставите приложение, должны будут к себе ещё и окружение под вас настроить.
В общем это синтаксичейский сахар и как всегда он должен применяться аккуратно и вдумчиво.