We experience this on both SQL Server 2014 and SQL Server 2019. We have an application, which loads some data into our database. At the end of this load process, the application runs sp_updatestats stored procedure, which makes sense since the volume of loaded data can be substantial.
We observed that in some cases, when we experience performance degradation, running UPDATE STATISTICS WITH FULLSCAN on relevant tables will fix the performance problem. However, the slowness will come back and I suspect that it happens when the next import comes along and executes sp_updatestats again. As a result, the default behavior of sp_updatestate (which samples data) overrides more precise statistics generated when running WITH FULLSCAN.
Does my explanation make sense? I don't think SQL Server has any way of knowing that the previous statistics were "better" and will just blindly overwrite them.