There are several reasons IMO, which contribute to the problem of BitShares' unpopularity. Although I think much progress is being made, many of these issues still cripple our rep among devs:
1) a lack of documentation, and what there is of it has often been out of date or few clear examples of
how to use features (both from a UI / user perspective as well as an API / programmer perspective).
Xeroc is addressing this, but due to the magnitude of the task progress is slow.
2) a lack of planning and structured goals (i.e. no clear roadmap and measurement against it)
3) a "sprawling" API which is inconsistent (variations in parameters for similar API calls) and difficult to learn
4) Lack of quality (code life cycle planning) in the development process and method of staging steps
to production readiness (no formal plan on how to utilize a testnet)
5) Below average pay for (far) above average skills
6) A rapidly changing feature set that decreases code reliability and increases complexity
(devs generally prefer elegant code over special cases and a patchwork of exceptions to make it work)
7) The community is often divided and suffers paralysis on best way to go, which can negatively impact dev
momentum and enthusiasm that progress is being made and hard work and efforts are appreciated. The
lack of graphene's success in the market is puzzling and is a source of negative feedback.
C++ projects impose a longer development process and require more skill to use than other approaches.