Why does an even subdivide change the displayed texture?
Ah I figured it out and it's not the vertices. Blender uses a triangulated version of a mesh to do UV mapping.

Looking at this we can see two distinct triangles:



Initially this doesn't make much sense since the object only has 4 vertices and should just compress as if it was transformed in Photoshop. However, once the mesh is triangulated with Ctrl + T the problem is clear.



All of the UV data is equally split between two uneven triangles. Subdividing makes the all of tris closer in size, creating less distortion.