Acho que não ficou claro a parte de
realmente necessário.
Eu não vejo nenhuma vantagem em usar o mono. Ele existe é verdade e até funciona, só.
Se você vai desenvolver para sistemas *nix existem outras N opções melhores e mais aceitas.
Se você vai desenvolver em um *nix para Windows uma hora ou outra você vai ter que colocar o aplicativo para testes em uma máquina com windows, logo, nem mesmo a desculpa de economizar uma licença é muito válida.
Como está escrito na primeira página:
An open source, cross-platform, implementation of C# and the CLR that is binary compatible with Microsoft.NET
Ele é compatível, não é o mesmo que dizer ele é uma versão do
Microsoft.NET para linux, até porque muita coisa é especifica como o
Microsoft SQL Server feito, se não ficou claro pela
Microsoft, para funcionar no
Microsoft Windows.