Part of what made Daenerys attack so devastating was just how much it took the Lannisters by surprise. In one minute, Bronn is laughing his ass off about Jaime mispronouncing Dickon's name, and the next minute the whole gang is set upon by a Dothraki army lead by a giant dragon. Cue one of the most brutal battle scenes in television history.
Thankfully they weren't at sea, or else Euron and his magical teleporting ships could have landed right on top of them in an instant. Instead, Bronn gave them like a 90-second heads up when he noticed the rolling rumble coming from just over the horizon.
If Bronn hadn't perked his ears up at that very moment, the Dothraki would have been a few hundred yards away before anyone noticed they were coming. Why it was down to a single random knight to announce the approach of a Dothraki stampede? Jaime mentions that their ranks are spread a bit thin, but there are still soldiers seen milling around (the ones that Randyll Tarly desperately wanted to beat into shape). They admit out loud that they are vulnerable to attack, so why did nobody think it was a good idea to use some lookouts or scouts to keep watch on their flanks?
Maybe they were a bit cocky after their victory at Highgarden, maybe they were a bit tired, or maybe they let their guard down after all the gold got to King's Landing -- but to leave yourself wide open like that is a bonehead move, especially for an army that just worked the Targaryens by outplaying them strategically.
Save for the satchel on Bronn's hip, all of Highgarden's gold is said to be safely in King's Landing before the rest of the caravan goes up in flames. Granted, Daenerys could have definitely used that money to benefit her forces, but there still plenty of wagons stacked with hay for Dothraki horses and barrels full of what I presume to be the finest Dornish wine. So why in the world would Daenerys specifically target the supply line for incineration?
Earlier in the episode, Dany (rightfully) gives Tyrion a lot of shit for being a terrible strategist. He's cost his queen access to her most powerful allies, some of which are now cut off from life-sustaining resources.
So hear me out here -- maybe don't turn all the food Cersei stole from the Reach into powdery, uneatable ash? That would seem like the right play for someone who's worried about filling the stomachs of her soldiers. Then again, Dany made a lot of strange decisions during this battle. Like bringing Tyrion along.
When Daenerys again brings up the idea of leading her army into battle, Tyrion attempts to shoot her down -- it's an awful big risk to put the potential future queen of Westeros on the front lines. She reasons that the people are fighting for her, and there's no better way to show them they've invested in the right cause than charging the enemy alongside them. That's a fair point, especially because it makes Cersei look even more cowardly as she holes up in the Red Keep.
So Dany shows up with her Dothraki, just like Jaime stands with his troops. So why did Tyrion bother coming? He's gotten in a few scraps before and come away alive, but he can't contribute hardly anything. He's Hand of the Queen, for crying out loud, and he's just sort of chilling on a nearby hillside. If he's close enough to recognize Jaime on a horse, he's close enough to get a stray arrow through the heart. Storywise, his purpose is to give Jaime's last charge some more weight, but as far as battle strategy, his presence is a risk with no potential reward.
Speaking of potentially catastrophic stray arrows...
There aren't that many people who can say they know what it feels like to ride a dragon. Personally, the closest I've come is sitting on top of a sad pony as it walks around a circle of waste at the local petting zoo. So I can't say for sure what the proper attire might be when you're astride what is essentially a flying, fire-breathing dinosaur. But I can say that if you're riding a dragon into battle, you're making yourself a huge target.
It was brought up in a previous episode that Dany would be especially vulnerable to arrow attacks, and yet she swoops in wearing the exact same outfit she was rocking while wandering on the beach on Dragonstone. If you want to risk your life to show that you're willing to put it on the line for your people, fine, but you could at least like, wear a helmet or something. Maybe some plate armor? Would chainmail be more appropriate? She doesn't have to look like Ralphie from A Christmas Story, but right now the only thing between her and a new hole in her body is those formidable shoulder pads. I get that she has invisible plot armor that will take us through the next season, but come on, they could at least keep up appearances.
And hey, if she wanted to make herself less of a target, she could have brought her two whole other dragons to throw off the archers.
As far as putting on the world's most popular television show goes, it makes complete sense that Daenerys only brings a single dragon to the battle. For one, the CGI bill for one dragon have to be astronomically high, so bringing more into the mix would probably be cost-prohibitive. And story/pacing-wise, the producers probably want to ramp up to three dragons in a single battle, as opposed to blowing their wad in the middle of the second-to-last season.
But in the universe of Game of Thrones, there is no reason why Dany shouldn't bring all three dragons to roast the Lannisters. If just Drogon can do this much damage on his own, imagine three times this level of destruction:
Bringing along Viserion and Rheagal would not only damage the Lannister soldiers to an even more severe degree, but that would also mean less Dothrakis would perish in the battle -- leaving the Targaryen army stronger for future conflicts. Dany doesn't even know about the "secret" ballistas, so from her perspective the dragons wouldn't be in danger.
Would it be unbelievably expensive to produce, much less nearly impossible to edit a cohesive scene with three dragons in the mix? Well, yeah. But mathematically speaking, the battle would have also been 200% cooler.