Theoretically, regression is the more appropriate choice here, because:
Classification models are usually built for distinguishing categorical labels like (cat, dog, car, house). Regression models on the other hand are more for data where you can distinguish between large and small differences. E.g. while for the above labels (cat, dog, car, house) you would usually consider them to be all equally different from each other, in star rating a rating of 4.5 is clearly nearer to 5.0 than 1.0.
Imagine your data contains the true star rating $s(\cdot)$ for a certain restaurant $r$ to be $s(r)=1.0$. And let's say you have two models, $M_1$ and $M_2$ which predict $M_1(r) = 2.0$ and $M_2(r)=4.0$. If those two models were classification models, their training algorithm would usually consider both models equally wrong in their estimate of the true rating $s(r)$. However, in regression models, the training algorithm would usually consider the model $M_2$ whose estimation is further away from the true value to be "more wrong" than the model $M_1$. And thus, the training algorithm of a regression method would usually "try harder" to fix $M_2$ than it would to fix $M_1$.
Having said that, in practice, and depending on your data and the models you use, it is very well possible that your classification model performs as well or even better than your regression model. So, as usual, the right choice depends on your data and you don't know before you try it.