OK a friend handed me his D300 and asked why his flash is not firing when you pop up the flash manual or it wont fire if it is underexposed looking for the flash. I use D3's so have never worked with the models with a flash. I have looked for a flash setting or something that got disabled but no luck.
I bet the pop-up is set to commander mode rather than TTL.
Go to menu, and navigate to flash/bracketing / e / pop-up flash / and choose TTL from the menu.
Sorry, I don't gave my camera in front of me so the navigation is sketchy .
Is he wearing a baseball cap? I've seen situations where the brim of the cam pushes the flash down use enough where it won't go off yet the flash is up.