A regression of $y$ on $x$ need not be causal if there are omitted variables which influence both $x$ and $y$. But if not for omitted variables and measurement error, is a regression causal? That is, if every possible variable is included in the regression?
No, it's not, I will show you some counterexamples.
The first is reverse causation. Consider the causal model is $Y \rightarrow X$, where $X$ and $Y$ are standard gaussian random variables. Then $E[Y|do(x)] = 0$, since $X$ does not cause $Y$, but $E[Y|x]$ will depend on $X$.
The second example is controlling for colliders (see here). Consider the causal model $X \rightarrow Z \leftarrow Y$, that is $X$ does not cause $Y$ and $Z$ is a common cause. But note that, if you run a regression including $Z$, the regression coefficient of $X$ will not be zero, because conditioning on the common cause will induce association between $Y$ and $X$ (you may want to see here as well Path Analysis in the Presence of a Conditioned-Upon Collider).
More generally, the regression of $Y$ on $X$ will be causal if the variables included in the regression satisfy the backdoor criterion.
In addition to Carlos Cinelli's important answer to this question, there are a few more reasons that the regression coefficients might not be causal.
Firstly, model misspecification can cause the parameters to be non-causal. Just because you have all relevant variables in your model does not mean that you have adjusted for them in the correct way. As a very simple example, consider a variable $X$ that is distributed symmetrical around 0. Suppose that your outcome variable $Y$ is affected by $X$ in such a way that $E(Y\mid X)=X^2$. Regressing $Y$ on $X$ (as opposed to on $X^2$) will then will give an estimated coefficient for $X$ of about 0, clearly biased, despite you having adjusted for all (the only) variable that affects $Y$.
Secondly, and related to the topic of reverse causality, there's also the risk that you can have selection bias, i.e. that your sample has been selected in such a way that it is not representative for the population to which you wish to draw your inference. Furthermore, missing data can also introduce bias if the data is not missing completely at random.