It is stated in the official docs that
TextureRect => "Used to draw icons and sprites in a user interface."
Sprite => "A node that displays a 2D texture."
So I believe it's better to use TextureRect for the user interfaces and Sprite for the background.
The reason probably has something to do with, Sprite being more optimized for in game world use than TextureRect, although they can both deliver the same functionality as background so nothing is stopping you from using them both as such.
Hope this helps