Here is a comparison of iOS/Objective C and .NET in terms of what Objective-C supports that .NET does not that makes it work for Apple -> in the primary dev language role -- the role that .NET has largely been a failure for at Microsoft.
Interoperability with C ObjC/Yes .NET/PInvoke
Interoperability with C++ ObjC/Yes .NET/No(very difficult)
Interoperability with C/C++ headers ObjC/Yes .NET/No
Cost of call to native code ObjC/None .NET/Thunk
Optimized Code Generation ObjC/Yes .NET/No
CPU Vector Instructions ObjC/Yes .NET/No
CPU Auto Vectorization ObjC/Yes .NET/No
Management of large/complex Memory/Heap Objects ObjC/Yes .NET/No
GC, ref counting, and manual mm. ObjC/Yes .NET/GC only.
Direct marshalling of Memory Bufs to Heap Objects ObjC/Yes .NET/No (Ever wonder why it takes so long for game levels to load in .NET?)
Control of memory alignment ObjC/Yes .NET/No
Support for numeric generics ObjC/Yes(C++) .NET/No
Macro/practical metaprogramming ObjC/Yes(C preprocessor) .NET/No
Large working set sizes ObjC/No .NET/Yes
Slow startup time ObjC/No .NET/Yes
-------------
This is a very long list of very important missing features in .NET vs. Objective-C. This doesn't mean that .NET isn't useful as a high level application platform (like Java), but it does mean that it simply can't fill the role that Objective-C fills for OSX/iOS as the primary dev platform for Windows 8 or Win Mobile. This is the reason for the resurgence of C++ at Microsoft for WinRT and mobile.
posted by bcooley