On high difficulties the AI can replace its lost troops almost immediately. Around medieval and renaissance it's literally immediately. One-turning tercios in their cap (confirmed with spy), and probably in other cities too.
Not sure if this is still a thing, but it used to be that they get bonus production when they lose units.
So what is even the point of killing them if they can just replace them instantly?
Against a deity AI it takes quite a while to get to a point where you can kill more every turn than they can build every turn.
In my latest game I had good results when I changed tactics to just injuring units, but leaving them alive.
Now they retreat and stop being a problem for a short period.
This only works if your firepower is great enough to incapacitate a large enough fraction of the entire enemy army every turn.
In a few turns they'll run out of full hp troops and you can advance.
I don't really like this state of things, but I'm not sure what to do to improve it.