I am not surprised by the outcome of this battle. Morale matters, but:
1) There is some randomness involved in battle
2) He has more units than you. If morale is equal, then the stack with more units will inflict greater damage. If you play around with this calculator (supplements), you will see that you have an advantage over your enemy's stack, but its not a massive advantage. This fits with the outcome of the battle (he lost more than you).