The above answer is not correct based on my experience with econometrics. I hope this adds some additional flavor and intuition to the post linked in the first comment of the OP's question above.
Centered R2 is the usual measure and it effectively assesses the improvement in accuracy that your linear model (with a constant/intercept or not) has over just using the mean. If the model is worse than the mean, R2 is negative (this can't happen with a regression that includes a constant/intercept term). Centered R2 is the same as Nash Sutcliffe Efficiency for y and yhat.
Uncentered R2 is uncommon and just tells you how much of y (rather than variation in y about it's mean) has been explained.
Uncentered R2 is a measure that gives a trophy to the loser for participation, which in this case is explaining the non-varying part of y. Centered R2 gives no points for explaining a non-varying quantity and the score starts at 0 when accuracy is equivalent to the mean.
Following [https://stats.stackexchange.com/a/26205/297006], it seems disingenious that R would provide uncentered R2 when the regression lacks a mean. That positive uncentered R2 value very well may be for predictions (yhat) that are worse than the mean (but there's a trophy for you regardless).
I would say never (for econometric analysis, machine learning, and other standard statistical applications) use uncentered R2, but if you do, make sure you don't compare it to centered R2 and assume you have a better fit because the score is higher.
if you center y by subtracting it's mean before the regression and then exclude an intercept term from your regression, then centered R2 and uncentered R2 are identical.