16. qb4 nb5 17. nf3 nd6 (forced because ne5 is coming and the queen cant cover the knight) 18. ne5 and now the queen has nowhere active to go, and the bishop is still doing nothing but guarding the pawn.
By contrast, bh3 not only trades off your misplaced inactive bishop for his better one, it also frees additional squares for your queen. Since white's queenside knight and bishop are both difficult to get active in this position, black has a slight but noticeable edge.
In other words, this isn't really a position where who has an attack is the issue. Rather, it is about which option gets your pieces the most active, as compared to the enemy pieces. Its not a huge swing, but bh3 is the better move using this criteria.
Here is a game that I was playing at a chess tournament(I had less than 5 minutes after move 17)
I was analyzing this game afterward with Stockfish and it said that I had an advantage after his 16. Qb4 move. I am not sure that I really have an advantage since a move like Bh3 which the computer recommends can be met by Bh1 and then Nb5 with a plan to go to e4 seems slow because there is probably no attack. How does the move Bh3 give me a better position?