The idea is that if you just use dictionaries for objects instead of traditional, statically typed, classes, you get all of the dictionary APIs for free, so you can easily iterate over the keys, add more keys to the object as you're processing it (as opposed to defining a Foo class and a FooBuilder class, or similar), etc.
The pros and cons are obvious if you've worked in dynamically typed and statically typed languages.
That's not quite what this article is arguing against. This article is more arguing against a functional programming pattern, IMO.
I say this even though I don’t usually code this way: I think the big benefit for business code is sort of a constrained flexibility.
Objects tend to get really big (the alternative is you have a ton of classes). Think about all the data that makes up one Uber ride. So if I want to do anything with a Ride, I need everything. An even the many classes thing doesn’t really solve that because maybe what I want is cross-cutting. So either way, I just end up having to supply a bunch of stuff I don’t need.
The maps-first approach is more incremental. Every function takes what it needs and gives what it can.