The problem is not with the ballistae being capable, in principle, to kill a dragon. It's how they portrayed it, with three laserguided sniper shots taking down the dragon without even a freaking line of sight. There is so much wrong with this it's hard to even break down into points without forgettin something, but I'll try:
-Why are they going by sea, when this is the route where they are the most outnumbered by the presence of a hostile fleet? (Apparently Dany forgot about that, yeah)
-How can Daenerys not spot the hostile fleet from her dragon's back?
-How can the hostile fleet aim perfectly fine at her without being in plain sight?
-How are the ballistae so ridiculously accurate to hit all of their first shots while fired from a permanently swaying boat at sea (and then later on can't hit a barn door when only Drogon is left)?
-Why on earth do they not shoot down Daenerys with their instakill sneak attack?
There is way too much stuff going on in this scene which can only explained with: because the writers need this to happen, so it happens. It's super annoying and breaking the suspension of disbelief to see writers' hand at work with these constant changes between instakills and plot armor.