I have a very similar problem with an NPC who has to keep a stick in her left hand, because she only has one good leg.
I'd be very interested if anyone has a better solution.
The frustration is that the OnEquip event doesn't fire for companions.
The kludge I came up with is to use the companion's OnHeartbeat to check that the stick is still in the left hand. In my case, it doesn't look too bad - if the PC forces an item into her left hand, or a two-handed item into her right hand, she almost immediately re-equips the stick. In your case, you might want a pseudoheartbeat running very frequently (once per second?) to make it seem that the right hand can't be equipped.
Another consideration is that my henchman AI equips the most effective weapon. I have the following system to prevent two-handed weapons being equipped:
This is not quite foolproof if the PC removes all other weapons from inventory, but the heartbeat kludge overcomes that.
My function which checks if an item is a weapon is as follows:
No doubt that check could made more general by examining baseitems.2da, as long as it isn't called too often.