Coach being oversold is the normal reason it would happen. If time is available, GA's would generally try to give the operational upgrade (op-up) to elites by status level.
If the GA doesn't have as much time, he or she might be more likely to give the upgrade to someone who hasn't boarded yet regardless of status, rather than deal with going down to the plane and moving people around.