Right now we're 6th in the Prem in xG, but 18th in goals scored. So we have created good chances, but we've missed them mostly. It's a small sample so I wouldn't take the stats fully at face value, but again who is a good attacking player on the team besides Bruno?
Would any of Rashford, Hojlund, Garnacho, and Amad start at any of City, Liverpool, Arsenal, and Chelsea? I think the answer is no, and that really tells you all you need to know. We have fairly average attacking players, and hence we're not great at creating chances nor scoring the ones we do make. Rashford was a good player but appears to have declined a bit from his peak (hopefully I'm wrong, but he's at the age declines often begin) and the others haven't yet reached their potential.
And to your point on defense last year, yes I think a lot of it was personnel issues. We had no Ugarte in midfield, instead relying on a declining Casemiro, and Licha/Maguire/Varane were hurt much of the year. Guys like Lindelof and Evans aren't great players, and the defense played accordingly. Heck, we tried Case at CB for a bit we were so desperate.