Web clients are better at having the same experience everywhere, and not being beholden to a single company's policies.
They lack:
- Performance, though this is getting better
- Proper notifications
- A secure way to store a private key without using an extension (nothing we can do on that end afaik, but affects adoption)
There are a lot of things that are just harder to code around in a web client. Storing data locally is more limited, etc. It's amazing they work as well as they do, and a testament to the skill of the folks writing them. None of the things I listed are because of the devs, they have more to do with the platform.