The author would use thrifty if they were trying to portray a positive behavior.
Each of those words describe someone who doesn’t spend a lot of money. However, “cheap”, “stingy”, and “tightfisted” all imply that the person isn’t spending money out of greed. “Thrifty” implies that the person is looking to save money by looking for a deal.
Thrifty. Stingy is generally considered like, doesn't give any money and cuts corners (like Mr. Krabs), cheap in my opinion is like, made from the least expensive and lowest quality material, and tightfisted is like, keeps all of their money no matter what.