There is a self-reinforcing network of assumptions in that statement:
- Good architecture beats good code.
- There are things I can express in dynamic languages which are hard to express in static languages.
- If you're not expressing those things, typed static languages win.
- When you're contorting your architecture to fit into static languages, dynamic ones win.
- Of course, if you don't have experience with dynamic programming, you won't think to express certain things or structure code certain ways.
There are, of course, academic languages which do both well (including optional static type systems for Lisp), but I'm not aware of any in widespread industry use (with an ecoystem of libraries, documentation, etc.).
Good enough code that works, at the right time, beats good architecture. Too many examples in computer science history.
Simple, clean code that works is the best way to express logical intent.
Eventually, everything compiles down to byte code. You can do it the easy way or the hard way.
Industry will use the most effective tool. Academics can experiment with high level concepts, but if it doesn't scale out, it won't be popular in the industry.