Let's say the report needs data from across two microservices, one is backed by mongodb and one is mysql, and both services have been crud endpoints but not ones that will give you the full data you need. This is a pretty typical scenario! So you could make new endpoints, but then you still need to "join" the data in code. Or you could set up data pipelines to sync data into into a data warehouse, where you query across everything.
Or you could have kept everything in a monolith, and this would have actually been a 5 second SQL query.