The problem with the traditional approach or waterfall is that you have to define all the requirements upfront in order to estimate the duration and the cost of the project and then create the project plan. Usually in software projects, not all the requirements are known up-front and many requirements change (some are altered/some are dropped/some are added) throughout the liftetime of the project. Requirements changes are handled by an efficient process in traditional project management, which is called "change control". But when the requirements change very often, then it'll be very hard to control changes (and, less importantly, keep the project management up-to-date).
In such projects, Agile is a better alternative because Agile was created to accommodate non-static requirements.
Note that there are many articles out there debating whether Agile is a better approach or not, and whether Agile is actually a methodology or not.