Why Iterative software development is better than Waterfall software development?
Because with the iterative method, one starts with minimal planning and then validates that planning against what the customer needs at an early stage. This actually helps ensure we are not led down the wrong path. As a result, less time is spent trying to completely plan before starting as well as saving time reworking late in the project when those plans are found to be wrong.
Instead if we use the waterfall method, we spend a considerable amount of time planning for what the customer thinks they need, which will be different to what they really need. Only then do we start to code, which almost immediately reveals holes in that "full planning exercise" and starts to highlight false assumptions in the plans. Those then must be reworked before development can proceed.
Eventually, we "complete" the coding and pass it over to test. At that stage further mistakes, both in the plans and code are found, resulting in a now very costly reworking phase.
Finally we present it to the customer. "That isn't what I wanted" then springs from their lips. More plans are made. More coding ensues. More testing is performed. Eventually, we arrive at something the customer can live with (it's still not what they really wanted, but costs are rocketing). So we ship. Next time, the customer goes elsewhere.
The big problem with waterfall is that it was never intended to be used in real life. It was designed as an example of exactly how not to run a project. Sadly, a great many companies missed the joke, took it seriously and tried to use it. The results speak for themselves.