Honor in Evony tracks your ability to fight other players. You do not earn honor for fighting NPC towns, barbarians, or flats. You only get honor for fighting other players.
You gain honor for killing troops. You lose honor for losing troops in battle. It is entirely possible to lose honor even if you win the fight!
It also appears that the amount of honor is tied to the type of troop killed. A swordsman is worth more honor than a warrior. A cataphract more than a swordsman. A ballista is worth more than a cataphract.
It is also a theory that attacking a player with low prestige/honor does not yeild you as much honor. Attacking a player with a lot of prestige and honor yields you more honor.
My theory in battle is always that it is better to win fights by a lot. If you win fights by a lot you kill his troops fast and suffer minimal loses. If you win by a close margin you will get very little honor or none at all!