Меня занимал
Запустить напрямую собранную под виндой сборку (типа mono foo.exe) не получится. Если поставлять в исходниках -- вроде не должно быть непреодолимых проблем (тем более поддержка WinForms вроде с каждым релизом улучшается, да и WCF/WWF и даже WPF и Silverlight вроде как собираются поддерживать), только надо искать общий знаменатель двух CLR/фреймворков. Основная проблема моно -- это то, что они лепят собственную реализацию всего вместо естественного процесса портирования. Я пересобирал одну свою программку, на которой учился C# и .нет, под моно -- ей всего хватило, и она даже запускалась, но из-за необычайно кривой реализации стандартного datagrid-а (он и в винде кривой, а в моно ему ещё хуже) работать с ней не получалось
Да и виндовые виджеты в linuxе выглядят жутко. Из чего я сделал вывод, что для гуя правильней будет использовать GTK# в обоих осях, ибо он кроссплатформенен от природы. Ну GUI -- это имхо главная проблема при разработке кроссплатформенных .net/mono приложений, с остальным должны быть проще.
Вот и я о том же - никто не хочет писать кроссплатформенный софт (потому что надо много разных вещей учитывать, напрягаться, да и производительность страдает).