It’s not the programming. Every default in matplotlib is poor. You have to write about ten times more lines of code to get something clean with legible fonts and minimal, understandable aesthetics. Very few people bother and then you get presentations full of ugly, time-wasting plots. Ggplot2 makes it harder to obfuscate your intent and very easy to experiment with different aesthetics and fix up the style of your plot. Yes it is opinionated, because, thankfully, there exist a good set of useful ideas for communicating data analyses.
Mmmm, ggplot has better defaults but I am still impressed by how bad the plots some people produce are. Absolutely agree on ggplot's ease of use, but that is partly a consequence of not needing to know how to program to use it.