You couldn't be more mistaken... C# and .Net (CLR) were absolutely written/meant to be portable. Mono was pretty well adapted from early on at a core level, though it didn't support all the options. If it weren't for MS patent stance and some FUD early on, it might have gained more adoption in the Linux space.
One of the reasons I chose to learn C# a couple decades ago over Java was the fact that interop was so much cleaner than JNI.
Mono was created by Miguel de Icaza, a Mexican (Now Mexican-American) programmer. Microsoft had nothing to do with it. Novell purchased it. Eventually Microsoft warmed up to it. Miguel de Icaza now works at Microsoft.
Only after Microsoft's Linux patent racket involving Suse, who Icaza worked for, branded them as the enemies of open source which became inconvenient once they realised the writing was on the wall for anyone who did not support open source.
You've gone from saying "C# and .Net (CLR) were absolutely written/meant to be portable" to "CLI was absolutely designed to be cross-platform." I feel you are not arguing in the spirit of my assertion that "C# was never intended to run everywhere" Sure, it was designed cross-platform so it would run on Dos/Windows ME and Windows NT.
One of the reasons I chose to learn C# a couple decades ago over Java was the fact that interop was so much cleaner than JNI.