Box2D is written/developed by Erin Catto and "Box2D is not open contribution". As such, for the answer to why Box2D doesn't support concave shapes, we have to look to him.
Fortunately, Box2D has a web forum with the question (from 2010 in its General Discussion section): Why do shapes have to be convex?
Erin's first response is:
I think this explains it well enough:
http://en.wikipedia.org/wiki/Separating_axis_theorem
There are techniques for handling concave shapes. They typically require a lot of memory and setup. For example, I've seen some papers that use signed distance maps. But they are often very light on details.
Later in the discussion, Erin adds what I think is an insightful gem:
AFAIK there are no high quality, high performance algorithms for concave narrow-phase collision. As it stands, there is little written about how to compute contact points and normals for convex shapes, let alone concave shapes.
This leads us to a relevant StackOverflow question (from 2013) of: Algorithms for collision detection between concave polygons. To date there's only been one answer to that question and it references a paper from 2003. This seems to substantiate Erin's position and claim.