array and curve modifiers (bezier) - distorted texture
So I hope my answer is accurate enough.

Your faces are projected as squares on the image in the UV Editor. But your faces are actually not squares, they are twisted quads. Also, in any 3D software a face is made of 2 triangles. So when Blender will map this face the UV map it will simply map 2 triangles, and it will give the following result.



If you subdivide your face a bit with some Ctrl R, the same thing will happen, but as your faces are much smaller the effect will be much less visible.