Williams was obvious, he's below average defensively and never looked comfortable as a pinch hitter, nor has hit that well when he started. His problem is with alley power he really needs to be a decent defender. Hopefully, he'll get hot in Lehigh and get traded for a solid A ball pitcher, which is about all you can hope to get, or a veteran RP.
I don't think there's much difference defensively between Bruce and Williams.
And Bruce is a proven ML power hitter, while his .210 BABIP suggests he'll probably get his BA back to his career norm at some point this season.
He's your perfect "platoon" LH batter, really good power stats over the last few seasons (except 2018) against RH pitching.
I don't like trading too much youth for veterans, but in this case a big hole got filled, nothing of value was lost, and Williams can now be traded for hopefully a decent prospect, opening a future spot for Haseley, a better prospect.