That is a good question. My impression from vets I know is that drug combinations and procedures have improved, but it would be good to know if this was actually the case.
When you say “die” do you mean when the horse loses consciousness or when the heart stops beating? There can be considerable time between these, in which a “struggle” may or may not occur, but it’s important to know - and for the vet to explain to the owner! - that the horse will not be suffering in this time.
If you mean that there is too often a long time before the horse become unconscious and “dead to the world”, then something has gone wrong with the procedure. This shouldn’t happen if a) an appropriate dose of fresh drug is given, b) into a vein that isn’t thrombosed, and c) the heart is beating normally. Then there is nothing to stop the barbiturate reaching the brain in seconds (usually less than 30 seconds) where it will end all sensation and make further suffering impossible. An animal cannot “fight” the effect of the barbiturate once it reaches the brain, assuming the dose has not been reduced through procedural error. (If the horse is very heavily sedated and the heart beat is greatly slowed, the dose of barbiturate can be increased.)
That still leaves the question of how often procedural errors occur, and whether these have become more or less frequent.
A well placed bullet is far more humane though not an option for most. I’m at a loss.
Shooting is an effective option (if done correctly!), although I would question the assertion that it is far more humane. I think if that were true, vets would be recommended / encouraged to use bullet euthanasia whenever possible.