The problem isn't that mono (or programs written using mono) have portability issues themselves. Requiring mono itself is the portability issue. Many people don't like running mono or .Net runtime or even the Java runtime and some businesses/clients don't want to support it. That is quite a portability issue.