In this post, it is stated that

In fact, using the SVD to perform PCA makes much better sense numerically than forming the covariance matrix to begin with, since the formation of $XX^\top$ can cause loss of precision

Why is this the case? Isn't $XX^\top$ just a matrix multiplication, what makes this operation so disastrous?