O Cygwin visa maximizar a compatibilidade de fontes POSIX e Linux, enquanto o MinGW fornece um conjunto de ferramentas GNU para criar aplicativos nativos do Windows. Espero que isso signifique que o seu aplicativo Linux requer apenas algumas mudanças ou não pequenas no Cygwin, enquanto portar código usando APIs específicas do POSIX / Linux para o Windows nativo pode ser um grande esforço. No entanto, se você puder fazê-lo funcionar com o MinGW, isso poupará a dependência da DLL do Cygwin.
Construir com um ambiente de compilação cruzada no Linux tende a ser mais rápido, mas também mais difícil, especialmente no que diz respeito às bibliotecas nas quais os aplicativos podem depender. E obviamente você precisará testar no Windows mesmo assim.