What is the underlying difference between motion compensation and motion estimation?
Motion compensation is the use of the motion estimation information to achieve compression.  If you can describe the motion, then you only have to describe the changes that occur after compensating for that motion.

I used this article as a primer.  Basically the first involves how you determine what movement is happening and the other is then used to determine what information changed after the movement and to describe what changes need to occur for playback.