I think this is because the pattern in the height_field is sampled in x/y
direction while the pattern for the texture is sampled in x/z direction.
Regardless, why don't you use the gradient y pattern? Should do exactly what you
want.
Also, you don't need the normal statement, the height_field has correct normal
vectors already.
Regards Roman