"Dodge, Pikachu, dodge!" (notice that his pokemon always manage to dodge for some strange reason.)
"Use thundershock!" (on a ground type, mind you.)
"Oh no, it has taken a lot of damage? Will it manage to win?" (Note that he calls his pokemon "it" and no matter how much damage they take, they manage to stay alive for 10 more turns.)
That is Ash's strategy. Ash is mediocre and second rate. He always manages to pull something out at the last minute that is utterly stupid and doesn't make sense, but works. Battles are boring and easily forgettable. His pokemon never gain experience except for Pikachu who somehow loses when he should be super powerful.
BINGO! If you're always (or in this case, usually) winning, one cannot assume it is luck. If I battle people hundreds of times, all of them "better" than me, but still manage to win a majority of the matches, you can't say it's just luck. In order for someone to get lucky that many times, it would be absurd. The only possible conclusion is though Ash isn't exactly orthodox in his skills, he knows how to win. If our question of "good" revolves around how likely they are to win, then Ash should indeed be considered good.