The only reason it is easier to defend than to attack is that the AI doesn't have the first clue on how to attack decently; they just end up all over the place, come to you exhausted after running half a mile to reach you, charge uphill, don't use ranged units and skirmishers effectively to harass you, etc.