Sepertinya ini karena Linux (tidak seperti BSD) hanya meneruskan satu argumen ke perintah shebang (dalam hal ini env).
Ini telah dibahas secara luas di StackOverflow.
Menemukan ini melalui komentar @rampion:
Apa yang terjadi adalah kernel memproses dua karakter pertama dari file yang mencari #!. Jika itu ditemukan maka ia melewatkan semua karakter spasi yang mencari karakter non-spasi dan mengekstrak jalur juru bahasa yang harus dapat dieksekusi nyata dan bukan skrip lain, meskipun linux memperluasnya untuk memungkinkan pemrosesan skrip rekursif. Setelah menemukan itu kemudian melompat ke karakter non-spasi pertama di mana ia mengambil dari sana ke karakter baris baru berikutnya dan meneruskannya sebagai argumen tunggal ke perintah. Tidak ada pemrosesan kutipan 'shell' atau karakter meta lainnya. Itu semua sangat sederhana dan kasar. Oleh karena itu, Anda tidak dapat menyukai opsi di sana. Anda hanya mendapatkan satu argumen spasi putih yang disertakan dan 'perl -w' adalah apa yang dilihat dan diteruskan oleh kernel di sini.
Sumber:http://lists.gnu.org/archive/html/bug-sh-utils/2002-04/msg00020.html