I really don't buy it at all. First of all dynamic languages can be (and ofter are) strongly typed, I would argue Ruby is much more strongly typed then C with all it's type punning shenanigans.
C is not a strongly typed language. Nobody claimed it was. Even C++ is only barely strongly typed.
If you want to see robust dynamic languages can do, again I would look at Erlang. Far more robust than anything you can throw at me about static typing. Duck typing just makes more sense for OOP.
If we're fighting over what weird crazy languages can do, I'll see your Erlang and raise you Haskell and Spec#.
All this complexity exists in static languages to implement what duck typing can do, and they do it in a manner that is incredibly less powerful and come up with ugly hacks like templates or if-type-then-cast to overcome the mess.
Implicit ducktyping is possible in strongly typed languages. It is no more a unique feature of dynamic languages than garbage collection is.
I had to waste hundreds and hundreds of hours of my life in taxonomist meetings where the same two opinionated people duke out their perfect idea for an object model for every stupid feature where I could have been programming.
You seem to be under the (false) impression that boring and ineffective design meetings are either the sole preserve of, more commonly occur in, or are a feature of companies that use statically typed languages. This is not true.
I've watched hopeless PHP design teams spend days in rooms discussing how to write code before bothering to try stuff out. On the other hand I've watched C# teams in other companies communicate via Linq to request an interface (e.g. ILogin) which the front-end person codes to and the backend programmer codes simultaneously.
The fact that you know two bad C++ programmers doesn't make C++ a bad language (there are much better reasons why C++ is a bad language). And the fact that you're a good Ruby programmer doesn't mean you wouldn't write better, faster, more secure code in a different language.