How can I generate time-variant Rayleigh channel in MATLAB
Yes, you can have time variant channel in MATLAB either by using comm.RayleighChannel()  , you can read about it in help of matlab. 

or the other way you use the same command you have mentioned but with each symbol the channel should be changed. so it will be like you will generate a channel which is Quasi-static. You above command will become: 

h = 1/sqrt(2)*[randn(n_symbol,M+1) + 1i*randn(n_symbol,M+1)];    


where n_symbol represents the number of symbols you have. then to do the convolution, must be use the loop of for.  

for jj = 1:nSym

  new_signal(jj,:) = conv(h(jj,:),x(jj,:));   %% x is your signal


end 

good luck