Mono - это кросс-платформенная реализация, включающая runtime CLR и подмножество .NET platform. Включает и поддержку настольных приложений.
Замарин (Xamarin) - это набор инструментов для разработки мобильных приложений. Работает поверх Mono runtime. Xamarin.forms позволяет писать меньше платформно-зависимого кода чем просто Xamarin.
![xamarin-forms-architecture-e143800106197](http://www.nexgendesign.com/wp-content/uploads/xamarin-forms-architecture-e1438001061974.png)
.NET Core - это кросс-платформенная реализация подмножества .NET platform для разработки бэкэнд сервисов, без необходимости в Mono.