O comando:
ssh -F <(vagrant ssh-config) default
executa o comando vagrant em um processo separado com seu stdout conectado a um pipe. A outra extremidade do pipe está conectada como descritor de arquivo n (no seu caso, é 11) para um novo processo que executa ssh e o shell é executado:
ssh -F /proc/self/fd/n default
Agora, isso só funciona se ssh não fechar seus descritores de arquivo na inicialização.
Infelizmente, isso acontece.
Se estiver usando zsh , uma alternativa é usar a forma =(...) da substituição do processo em que, em vez de usar um canal e /proc/self/fd , ele usa um arquivo temporário.
Ou você pode usar um descritor de arquivo que ssh não feche. Por exemplo, se você não estiver alimentando nada com ssh (se o comando remoto não estiver lendo nada de stdin), você poderá usar fd 0, por exemplo:
vagrant ssh-config | ssh -F /dev/stdin -n default