I’m one of those people who hates dynamically typed languages and what I dislike is related to when a lot of errors are detected, therefore, it is the dynamic aspect that I dislike. I am much more productive when most errors are caught in a compile phase. This enables things like an IDE that can underline most of my typos and tell me quickly that I screwed something up.
Consider I have an object called “bank” that has a member called “accounts”. Being human, every so often I will type “bank.account” or “bank.acounts”. In a dynamically typed language those typos will be discovered when that line of code is executed. In a statically typed language the same errors will be underscored in my IDE. I save lots of time by having those simple things pointed out sooner rather than later.