It seems like agile would be good if you need something quick.
That is sort of the point, you get "something" in a short amount of time, then another "something" in another short amount of time. "Something" doesn't have to be complete and polished, just working so that it can be tried out and evaluated with respect to providing the desired benefit and doing so in a reasonable fashion. Ideally the people who will use the software will be trying these somethings and letting you know if its really heading in the right direction, working in a reasonable manner, etc.
So management hears "Oh it's quicker than what you're doing" and dive on that like a pigeon on a French fry. Honestly the agile I do currently should just be called "go fast, be stupid" because that's how it works out.
Regrettably I've also seen agile/xp go wrong and quality drop. It was more of a management problem, the number of tasks completed were pretty much the only metric devs were evaluated on. So management got what they rewarded, fast task completions. Quality dropped. Management didn't consider in dev evaluations tasks reappearing in future scrums because they were not done quite right the first time. It was quite Dilberte-sque.