It is preferable to use Factor Analysis on the Co-variance Matrix when the variables under consideration have roughly the same order of magnitudes on the numerical data associated , i.e, when the variables need not be scaled down to unit norm to ensure proper scaling in data-set.
correlation inherently scales the data to unit variance. If variables natively exist on the same dynamic range scaling to unit variance can artificially boost the noise in low amplitude variables, making the resulting more unstable and uninterpretable. This is a common case in signal based measurements when the signals contain baseline (no meaningful signal) regions. In non-signal you shouldn't use correlation matrix if some of the variables are know to have a much weaker effect size to random error ratio than the others.