В чем разница сейчас между mono, xamarin и .net core?
Mono - это кросс-платформенная реализация, включающая runtime CLR и подмножество .NET platform. Включает и поддержку настольных приложений.
Замарин (Xamarin) - это набор инструментов для разработки мобильных приложений. Работает поверх Mono runtime. Xamarin.forms позволяет писать меньше платформно-зависимого кода чем просто Xamarin.
 .NET Core - это кросс-платформенная реализация подмножества .NET platform для разработки бэкэнд сервисов, без необходимости в Mono.
.net core -- просто рантайм. mono -- свободный форк .net framework. xamarin -- порт рантайма моно на мобилки и макось. Что актуально, а что не очень? 
Все 3 рантайма находятся в актуальном состоянии. С приходом .net 5 вообще рантайм можно будет выбирать по желанию для каждой аппы (относительно, за ксамарин есть вопросики).Какие различия?
Моно эмулирует винформы для линух/мак. Корка имеет винформы/wpf только под винды. Ксамарин вообще о своем.
А, да. По байткоду они пока несовместимы и на каждый надо таргетиться отдельно (однако есть .net standart, хитрый тип сборок, предоставляющий некоторый сабсет общего апи).