The codecs and processing routines on mobile phones is optimized toward human speech. Any sound not recognized as speech (i.e. music) is minimized to conserve network bandwidth and cancel out noise. Music with a singer has a better chance of being heard, but just music (especially at a low volume) is normally cut out by the codec.
And It doesn’t matter what type or brand of phone you have. What matters is the codec that your mobile provider uses to encode the call content before it puts it over the air. In other words, it’s not that your phone can’t hear the music on hold, it’s that Verizon, AT&T or any carrier is not sending the music to your phone with very good fidelity. The codec discards anything that doesn’t sound like speech.