This is the row that decides most trips. Around Hurghada the coral reefs are several miles offshore, unlike the Sinai resorts where they hug the coast. So in Hurghada you snorkel and dive from a boat, usually to the Giftun islands, which are under an hour away, and most beaches are sandy shallows. Tourism has hurt the reefs and, according to a study that isn't named, they declined by 50% in three decades, with oil spills, pollution, sewage and dredging listed as causes, so go with an operator that doesn't anchor on the coral.
Sharm El Sheikh is the opposite. The coral starts close to the beach, and in places like Ras Um Sid and Shark's Bay you walk or step off a jetty and you're snorkeling over it. Some Naama Bay hotels have cleared the coral from their own stretch of beach to make a swimming area, so check that the hotel you book has access to a reef, not only a sandy bay. For the real show, Ras Muhammad National Park is about 12 km from town, with more than 220 species of coral, and the four reefs of the Straits of Tiran are a boat trip away. Tiran island itself was handed to Saudi Arabia, so trips go to the reefs in the strait, not to the island.
Two honest caveats. Popular dive sites get crowded: there can be up to 20 boats at one reef. And Hurghada's reef days are still good, just more of an outing. If you plan to dive every day anyway, the gap shrinks, because you're on a boat in both places. If you want to snorkel for ten minutes before lunch, Sharm wins by a mile. Bring reef shoes in either town: sea urchins and stonefish live where you'd step.