I've been at Marsa Shagra and Nakari too a few times. (The llatest was in Nakari in October, and I going next week to Shagra actually.)
The main difference between Shagra and Nakari is in their size. Shagra could have around 200+ ppl, Nakari around 80 max. This means a lot less of a crowd in Nakari both on land and definitely in water too. You need to weight how much do you love crowd.
Nakari has smaller distances to cover between house/tent, restaurant, diving stuff, "even to the pier". You wouldn't think, but it matters if you want to do 4 or more dive a day, because all those little minutes just adds up.
At Nakari the pier is about 4 meters from the lockers (and the whole locker building is around 20 meters long), while Shagra its around 30 meters from a ~100 meter long building and the pier is also longer about 20 meters. It could be a thing when you are geared up.
(Btw, at Nakari the deluxe chalets are further from the shore then the huts, I don't like them.
)
I usually go for a normal hut, since I'M usually going in May and October and the weather is perfectly fine without an AC at the evening. (Of course if you actually hate warm weather, you are better with a deluxe chalet ofc.)
(Btw tents are fine too, but if you got rain (2-3% chance isn't zero), it could flow in under it.)
The public bathrooms are very clear, so I'm fine with them too.
The meal is quite good at both places. It doesn't hurt a little if you like drier meats, but you can be a vegatarian and you still won't stay hungry either, so totally fine for anyone from Europe or USA.
Shagra has a little better home reef imho. But from Nakari you can still go to Shagra (by the bus of the bases) for a day to have a few dives at Shagra's home reef, or you could do the same for a trip to Elphinstone for example, so you can have that sites while sleeping at Nakari too.
If you would like to dive a lot without a crowd (in water or on land), go to Nakari.
If you want to mingle a lot with other divers while diving, go to Shagra.