Just off the top of my head, because it's been a while since I rolled a list like this. One is a complaint from friends of mine that I haven't personally tripped over; others are my own issues from assorted hilarious Failures Of Graphics Programming.
* A total lack of typing. Everything is a GLuint. By the time I've bodged together sufficient type safety to be comfortable, it looks like DirectX.
* Extensions suck. Abjectly suck. While Direct3D has its problems, it does a pretty good job of saying "you must support these things". OpenGL attempts to vaguely say the same thing, but the difference is that Direct3D enforces support of things I want to use. It seems that you end up with many more code paths for OpenGL if you want to properly handle a lot of stuff.
* Difficult to query about GLSL problems, if possible at all. (An older example that's stuck with me is the noise() function, which nobody implemented the last time I dealt with this stuff. They returned a constant. Detecting this failure mode was nontrivial.)
* Tooling. As usual, Microsoft is way ahead in this area.
A project of mine uses OpenGL instead of D3D, but that's primarily because I'm not the graphics guy on that project. My own stuff just uses XNA, as it's 2D stuff I want to deploy to the 360.
from launch until basically 2000 DirectX was definitely not a better API. having full control over defining a 3D API was great, I'm sure, but it was absolutely used as leverage and opengl support absolutely languished (and still does, today, though the GPU vendors are fully complicit).
Working at a low level with OpenGL is really painful, and there are no Direct3D-quality libraries on top of it to blunt that pain.