Granted, some of the LINQ and Lambda syntax can be a bit daunting, but you get used to it.
Speed-wise, uscript scripts compile to a mono/.NET assembly, and so do the C# scripts, so I reckon performance will be pretty much equal. Although I have never really tested this. So don't take my word for it.
For me personally, C# leverages you to be more considerate about what you write, how you use it and when. Due it's much less forgiving nature then Unityscript. I think this holds you somewhat back from getting super messy code really fast, although that entirely depends on the person. I myself am very prone to write messy code so I prefer statically typed languages because it makes me think before I put something down.
There's also the much better access to delegates, generics, reflection and most importantly events. The latter is VERY important for game dev imho. Especially in a component driven model such as Unity where dependencies can become a real hurdle.
And if you tend to use SendMessage a lot, it's actually a good idea to start checking out .NET type events. As SendMessage uses Reflection, which is a bad idea if you're pushing a lot of those to a lot of GameObjects all the time.
You can also use the more traditional OO methods of abstract classes, interfaces, virtuals, statics, etc...