The lock-in is mostly such that if you code in C# on Windows first, getting it to run on Mono later may be difficult, if you didn't pay close attention to what you were doing from the start. In this sense, it's rather different than e.g. Java.
But not too different from all that POSIX-specific Ruby and Python code out there, admittedly.