Officially supporting .NET for other platforms would be a serious nail in Microsoft's coffin.
One of the reasons Windows succeeded where other operating systems failed has been due to Microsoft's support for the developer - Microsoft produce some of the best tools in the industry. Use of these tools however, come at a cost - you are tied to Windows. This suits microsoft greatly, as it boosts sales in Windows, and as such tools such as Visual Studio and .NET can be produced as loss leaders in order to tie users in to the Windows platform.
If Microsoft were to release .NET for Linux/Mac, then they will turn operating systems into a commodity - everyone could freely switch between operating systems and still have access to the same software (assuming everything was written in .NET).
Why would someone choose to buy Windows for £100+ when they can use Linux for free, and still get access to the same software?
There is just no incentive for Microsoft to do so, in fact it would be counter productive to their business.