I'm having trouble understanding the difference in calculating portfolio volatility via the portfolio returns vs. via the covariance matrix.
To be more specific: I understand that on the individual security level, volatility is calculated as the sample standard deviation of arbitrarily periodic returns over an arbitrary amount of time. Given that a portfolio has an NAV which can be treated as its total value, those same periodic returns can be calculated and a sample standard deviation can also be calculated over some time frame to produce its volatility as well.
However, I know this is not the method typically done for calculating portfolio volatility. Portfolio volatility is calculated with a covariance matrix and the weights associated with each of the securities/assets comprised within the portfolio.
I understand the math behind the covariance matrix and am not questioning its accuracy. What I don't fully understand is why the volatilities calculated via the portfolio's returns and the volatilities calculated via the covariance matrix differ as they do.
A coworker told me this was due to the small changes in the weights throughout the time period (since the returns for each of the securities/assets will increase/decrease values and adjust the weights until/unless rebalancing occurs). This, at a high level, makes sense to me. But I'm honestly unsatisfied with it and am hoping for a more proof-like answer.
Thanks in advance.