It's the break the big problem into small programs strat from sicp.
It makes sense, if you work on a big 5 year projects, to break it down into maybe 10 subparts. If you build a car with 10 machines you can understand the complete car if you look at the machines as black boxes (eg you press the gas pedal > it sends a message to the command center > command center processes it > command center sends message to the engine which does its thing). If you work on the engine you can understand it as well because you don't have to think about the multimedia suite also.
Micro services is when you split these 10 machines into another 10 machines (eg the multimedia system is split into radio, bluetooth, video display, audio output, speakers etc).
People think it's bad, because big companies hire a large amount of dumb people which aren't good with abstraction. So instead of the gas pedal team sending messages to the command center the team is going to do a hack and send the message directly to the engine. Now the traction control doesn't work anymore because the command center cant process the message first.
It's great tbh and the only way to make a big project with a large workforce like a car or netflix, which is a good example of a good microservice project. They have talks about it if you care.