I've been out of the market for a bit, but last time I was in it, it was really terrible. I think it's better than it was a few years ago, but no where near where it was. It took me over 6 months to land a role, where previously I generally had a few offers within a month or so.
For the market, your hit rate sounds good. You don't suck, it's just like that out there at the moment. The fact that you made it to a final round means someone clearly thought you were capable of doing the job.
My best advice is if you have any niche skills try to capitalize on those. Your average Java/.NET/JavaScript developer role is seeing literally thousands of applicants. The more you can get off the beaten path the better. If you know some less common programming language or technology you may well find you have better luck searching for jobs looking for that even if it's not your core competency.