I don’t really think it’s any of those things in particular. I think the problem is there are quite a few programmers who use OOP, especially in Java circles, who think they’re writing good code because they can name all the design patterns they’re using. It turns out patterns like Factory, Model View Controller, Dependency Injection etc., are actually really niche, rarely useful, and generally overcomplicate an application, but there is a subset of programmers who shoehorn them everywhere. I’d expect the same would be said about functional programming if it were the dominant paradigm, but barely anyone writes large applications in functional languages and thus sane programmers don’t usually come in contact with design pattern fetishists in that space.
Because until you spend many hours getting used to it, it’s annoying as hell. I’m a longtime bash user, but if I have to do anything in PowerShell, it sucks. Bash is even less friendly to novice/casual users due to tools like awk and sed being totally obtuse. When you’re unfamiliar with the workflow, not being to see everything you’re able to do at a glance is pretty frustrating.