In R, one needs awareness of the difference between calculation and assignment. sometimes we might write code to do both, but we can also write code to do only one. The way you use mutate , you are only calculating and not assigning.
Consider this very trivial code :
(x <- 2)
x + 2
x
x <- x+ 2
x
the first time we see x+2 a calculation happens and a result is emitted, but it is not assigned anywhere, there is no variable name to refer to to see the result.
Therefore assignment <- is then used to retain the result, the second time we see it.