Isso deve fazer o que você quer:
printf '#!%s\n\n' $(which bash) > "$1" ; vim -c startinsert +2 "$1"
Ele insere duas novas linhas no arquivo, portanto não é necessário o . Em seguida, inicia o vim na segunda linha (+2) no modo de inserção.
Além disso, prefira aspas simples para aspas duplas, se nenhuma expansão for necessária. Nesse caso, !
pode ser interpretado como o caractere especial de expansão de histórico entre aspas duplas e alterar totalmente o que é impresso.