Eu uso essa configuração o tempo todo, e IMHO, a melhor maneira de fazer isso é usar um emacs Cygwin. Tudo é consistente - manipulação de arquivos Emacs e seu shell.
Você pode dar explicitamente ao Emacs o nome do arquivo do shell - essa variável é inteligentemente denominada: explicit-shell-file-name
. Defina para, digamos, c:/cygwin/bin/bash.exe
, etc.
Configuração mais abrangente e outras dicas úteis para essa configuração: link