I have the same issue on my 13pro
If unlocked, the iMessage alert tone is heard. When locked, there is no alert tone but when you then unlocked the phone, the message is on the banner on the screen.
I tried all the suggestions so far -dnd off, checked focus, changed the tone, change ringer volume to low, high and back, awareness toggle etc etc
if I turn off Bluetooth, the alert is heard when the phone is locked but that really isn’t a solution!! Turn Bluetooth back on, and no sound again!!
was running 15.6 beta, so I tried removing the beta profile.. but nothing seems to help!!
any new ideas or is it an iOS bug (feels like it must be after all I have tried)