Is there a hook in ExpressionEngine that triggers when any one member is moved from group to another?
As Derek said, there isn't a hook for member group change, but you could accomplish this by using the two member update hooks provided by the Member Model in conjunction with the Cache Access provided by the Session Class.
Hook 2: member_update_end
In your method called by this hook retrieve the existing group_id (set above) by using the Session Class
cache() method and compare it to the updated group_id to see if it has changed.
This works well in my quick test.