Você não pode escrever #!$(which foo) porque essa linha é interpretada pelo kernel, que não entende sintaxes complexas como $() .
O kernel não procura o comando na variável de ambiente PATH . É por isso que você precisa especificar o caminho completo para o comando.
O uso de /usr/bin/env é um hack inteligente usado para pesquisar o comando no PATH . Mesmo se houver um programa /usr/bin/python3 , você pode, por exemplo, ter instalado uma versão mais recente do Python em um caminho diferente, por exemplo, no seu diretório pessoal.