This is an old method. I kind of wonder if there's anything newer that makes this simple...
z = sin(linspace(-pi/2,pi/2,N));
h = surf([x(:) x(:)],[y(:) y(:)],[z(:) z(:)]);
To see what the 'interp' option does, set N = 10 and then run it. The plot will still be a uniform gradient. Set 'edgecolor' to 'flat' and run again. The line color will be 10 discrete steps.
Afaik, plot doesn't really have any way to utilize a colormap, interpolated or flat/faceted. Something like scatter() can do color interpolation, but afaik, you can't connect the markers.