A couple of reasons. First, Flexible Program is just an alteration of the program used by the camera, changed by an offset. If you use it to dial in a two stop change, things will stay a two-stop change until Flexible Program is cancelled. What that usually means is that you're constantly dialing something new, because what you're really trying to do is set a specific aperture or shutter speed, not adjusting "the program."
With the consumer cameras it gets even more likely that'll you'll continue dialing something in, as "the program" is really multiple programs that change with focal length. And in most cases, Nikon's "program" is pretty dumb: it's a linear progression of aperture/shutter speed choices, not a complex "program" as suggested by the name.
But the big reason for not using Program exposure mode has to do with flash: it probably won't do what you want it to do. In some cases, you're setting yourself for ambient underexposure due to aperture and shutter speed limitations that Program exposure mode imposes. Given that Aperture-priority and Shutter-priority are both "automatic" exposure modes like Program, there's no real drawback to using them. If the aperture is most important to you, choose Aperture-priority. If maintaining a shutter speed is most important to you, choose Shutter-priority. You'll do a lot less "command dialing" that way than you will with Flexible Program ;~). Really.