Mono - это кросс-платформенная реализация, включающая runtime CLR и подмножество .NET platform. Включает и поддержку настольных приложений.
Замарин (Xamarin) - это набор инструментов для разработки мобильных приложений. Работает поверх Mono runtime. Xamarin.forms позволяет писать меньше платформно-зависимого кода чем просто Xamarin.
.NET Core - это кросс-платформенная реализация подмножества .NET platform для разработки бэкэнд сервисов, без необходимости в Mono.