Moonlight est un à côté de Mono. Tout comme Mono ne supporte qu'un sous-ensemble (assez large pour faire tourner une très grande majorité d'applications qui n'utilisent pas de classes spécifiques Win32) des classes de versions antérieures de .NET, Moonlight ne supporte qu'un sous-ensemble des fonctions (j'ignore quelle est sa taille relative) de versions antérieures de SilverLight.
Je suis super étonné que MS supporte cela au point de mettre un lien vers ça
Ce qui semble te paraître inattendu n'est, à mon avis, pas du tout étonnant

* déjà, c'est peut-être un des termes du partenariat Microsoft - Novell;
* et puis il est
très intéressant pour Microsoft d'étendre ses technologies également à MacOS X et Linux, réduisant ainsi encore la proportion de programmeurs qui voudraient programmer sur les technos concurrentes (au premier chef Java, que tu mentionnes), par exemple parce que les technos de Microsoft ne sont pas assez portables. Ca leur permet de prolonger
l'habitude des gens d'utiliser les technos d'origine Microsoft, au détriment des autres technos, quelles que puissent être les qualités et défauts de chacune (typiquement, certains usages répandus de Java, de nos jours, comme OSGi(TM), sont impossibles en C#)

MacOS X représente ~10% du marché, et Linux ~1% du marché, c'est à dire qu'aucun des deux ne menace Windows au présent, et vraisemblablement, aucun des deux ne le menacera dans le futur.
Microsoft cherche à détruire Java depuis plus de dix ans, ça remonte au plus tard à quand ils ont fait une VM et un langage incompatible mais qu'ils ont appelé ça "Java". Cette base de code a formé la base de C# après que Sun ait, en gagnant le procès, interdit juridiquement à Microsoft (et pas juste dans la spec de la VM / librairie de classes) d'appeler "Java" un truc incompatible.