Well, in my experience it’s very rare that a definitive, publication-ready, plot will pop out of a script. There is a lot of fine-tuning work (position of legend, color and thickness, global aspect ratio…) that could be done just after seeing the actual plot. It’s just that you can’t take all those visual optimizations away from a case-by-case fashion.
Once you don’t have an abstract script that you could just run after loading generic data, you don’t want, for a specific data set, to repeat yourself doing all those customizations, nor you want to export already to a more or less immutable form (pdf, svg) in case you need to make some final cosmetics, or last minute change (let’s say a referee asks for something…).
That’s in my opinion the typical use case where you want to save not only the data, but also all the custom graphical setup for the plot. Matlab .fig files allow for an easy and efficient way to do that, embeddeding everything in hdf5 format, so that the figure does not take much more space than the raw data themselves