So far almost all the comments have been pro-flex-time, which makes sense, since that's what the original poster asked for.
Here are some disadvantages I've seen over the years (in no particular order):
Working more time than non-flex
It's not as flexible as you might think
Wasted time because schedules don't mesh
To elaborate on each of the points:
Working more time than non-flex
When you're working flex-time, it's very easy to put in extra hours. Frequently you're not watching the clock and it's easy to come in to work at 10am, figuring you'll leave at 7pm, only to find that one more bug just as you're ready to leave, and then you find you're still at work at 6am. While this is great from a short-term productivity standpoint, in the long-term it can lead to burnout. Having everyone leave the office at the same (or nearly the same) time means that you have a cue that it's time to leave. If something is critical, you can stay late, but it's easier to know when it's time to leave, especially when no crisis is brewing, and in the long run, that helps avoid burnout.
It's not as flexible as you might think
One of the biggest frustrations I had with flex-time was people who would schedule meetings near the end of core hours (those hours when everyone must be in the office). When (as seems inevitable) the meeting runs long, instead of being able to escape the office before rush-hour, you've missed the window for an easy commute, and you might as well stay another few hours. Similarly, people who schedule meetings at the beginning of core-hours want their meetings to start on time, so you have to plan to get there at least a half-hour earlier. Both of these meeting effects reduce the flexibility of flex-time.
Wasted time because schedules don't mesh
And finally, what do you do when you're one of the people on the late shift and you need to talk to someone on the early shift who's already left for the day? When the thing you need to talk about is something that's blocking you from getting anything done, you go home early, having put in a short day, and the project you're working on is delayed by a day. Alternately, the person who was in early and left early gets called back in to the office to help with the problem, and it's the same effect as if they'd gotten caught in a late meeting
The one thing these all have in common is that they can be dealt with by competent management, but there are far too many companies that lack such management. Then you start running into problems like this with flex-time, which causes either burnout, or just plain resentment.
It's much simpler for a company to manage fixed-hours than it is to manage flex-time. If the quality of the staff isn't up to handling the challenges of managing flex-time, it may be a better solution to have fixed hours.
books are still far more convenient
Plus, books don't crash, and it's nearly impossible to trip over the power-cord on a book.
To elaborate on each of the points:
Working more time than non-flexWhen you're working flex-time, it's very easy to put in extra hours. Frequently you're not watching the clock and it's easy to come in to work at 10am, figuring you'll leave at 7pm, only to find that one more bug just as you're ready to leave, and then you find you're still at work at 6am. While this is great from a short-term productivity standpoint, in the long-term it can lead to burnout. Having everyone leave the office at the same (or nearly the same) time means that you have a cue that it's time to leave. If something is critical, you can stay late, but it's easier to know when it's time to leave, especially when no crisis is brewing, and in the long run, that helps avoid burnout.
It's not as flexible as you might thinkOne of the biggest frustrations I had with flex-time was people who would schedule meetings near the end of core hours (those hours when everyone must be in the office). When (as seems inevitable) the meeting runs long, instead of being able to escape the office before rush-hour, you've missed the window for an easy commute, and you might as well stay another few hours. Similarly, people who schedule meetings at the beginning of core-hours want their meetings to start on time, so you have to plan to get there at least a half-hour earlier. Both of these meeting effects reduce the flexibility of flex-time.
Wasted time because schedules don't meshAnd finally, what do you do when you're one of the people on the late shift and you need to talk to someone on the early shift who's already left for the day? When the thing you need to talk about is something that's blocking you from getting anything done, you go home early, having put in a short day, and the project you're working on is delayed by a day. Alternately, the person who was in early and left early gets called back in to the office to help with the problem, and it's the same effect as if they'd gotten caught in a late meeting
The one thing these all have in common is that they can be dealt with by competent management, but there are far too many companies that lack such management. Then you start running into problems like this with flex-time, which causes either burnout, or just plain resentment.
It's much simpler for a company to manage fixed-hours than it is to manage flex-time. If the quality of the staff isn't up to handling the challenges of managing flex-time, it may be a better solution to have fixed hours.
...otherwise Mars won't be ready by the time we're global-warmed Earth into another Venus.