Well written code in dynamic languages is legible. The problem is when you encounter poorly written, illegible code in a dynamic language, the lack of strong types kneecaps your ability to figure out what it is supposed to do.
I loved Ruby until I inherited a project that was poorly written Ruby.
I loved Ruby until I inherited a project that was poorly written Ruby.