Cordova is not bad, trying to program a mobile app in HTML5 is. (1) You have to build most of the UX interactions yourself (2) Performance is a bitch. You can spend months trying to optimize your code and it still sucks (3) Different versions of android have different levels of support for HTML5 api. In the end, you get to use the lowest common denominator. (4) Windows phone reloads your Javascript / HTML code every time someone starts the app giving an obvious "reload flicker".
Basically it is one of those unfortunate cases where the first weeks makes everything look really promising (single codebase and all) and it is only after hard work of several months that you realize that there is no way you are going to win this battle.