Why do we undershoot/overshoot with a compass turn?
There is a good video that goes over the topic here ~2:45 into the video. It has to do with the way a magnetic compass responds to turns. When turning north the compass lags when compared to the tun of the physical aircraft so you need to overshoot the heading based on what the compass is showing. When turning south the compass leads the turn and you must roll out early to make your desired heading. 

This site offers a nice explanation of why this happens in the compas 


  Northerly turning error is due to the mounting of the compass. Since
  the card is balanced in fluid, when the aircraft turns, the card is
  also banked as a result of centrifugal force. While the card is
  banked, the vertical component of the Earth's magnetic field causes
  the north-seeking ends of the compass to dip to the low side of the
  turn. When making a turn from a northerly heading, the compass briefly
  gives an indication of a turn in the opposite direction. When making a
  turn from the south, it gives an indication of a turn in the correct
  direction but at a faster rate.


Similar explanations show up in this thread. Simply put its not the turn that causes the error but the banking of the aircraft. By rolling the compass housing to one side we allow the compass to tilt differently than it would in level flight. Since the pole is generally beneath the aircraft the roll allows the compass to pitch in a slightly different way causing the error we see.