The key in communicating is that you give a roadmap, but not put the date into the sand.
Following the idea of the iron triangle, with Agile we fix budget and time, but we keep the scope flexible, however, we estimate a scope and refine that along the way.
If you follow an iterative Agile approach like Scrum, given you know your velocity and you have a backlog in good shape, you can work from one milestone to the other.
I'm sure some upper management is fine with "we will work on these features and some of them will be done by December."
But in a lot of organizations upper management asks middle management when those features will be delivered so they can plan client communications or internal teams around that.
Following the idea of the iron triangle, with Agile we fix budget and time, but we keep the scope flexible, however, we estimate a scope and refine that along the way.
If you follow an iterative Agile approach like Scrum, given you know your velocity and you have a backlog in good shape, you can work from one milestone to the other.