Usually teams are bad at estimating because they struggle to break down their work.
Often, the product owner writes up large epics instead of User Stories and then it’s up to the team to break that down into a sprint deliverable.
When in the team’s hands, stories are usually broken into ease of engineering instead of product value
Bad estimates are usually just a sign of poorly written User Stories.
When stories are written as a list of technical requirements, it is easy to overload a single person with a certain skillset and leave the rest of the team scrambling for work.
On the flip side, when stories are written in terms of value to the user, the whole team can get involved and consider how they can contribute to delivering value.