Nope, latency is not the reason for the skew. Kindly check once. Latency is teh time taken by a clock signal to propagate from its definition point to the flop/clock pin (i am assuming network latency). This is a clear cut delay. thus called insertion delay. You can find any changes in the width of the clock waveform. Where as uncertainty is a factor that models "skew+jitter+otherpessimismvalue" now the question is what is this other pessimism value? This is youe derating factors which is done on the early and late paths.
So, never confuse on these two terms dude. Remember, Latency is related to time it takes to propagate through the path. But uncertaininty is the factor which we add to tighten up the margins.
Say for example if we specify
set_clock_uncertainty -setup 0.2 [get_clocks my_clk]
set_clock_uncertainty -hold 0.05 [get_clocks my_clk]
what will it do? It will reduce the setup margin by the amount specified but add the hold margin by the amount specified. Now compare what will a latency do.
Cheers