Cloth simulation appears corrupt in render
This is because the cloth simulation is baked using the viewport settings of the modifier(s) above it.
As the subserf modifier above it has a viewport subdivision level of 1, but a render subdivision level of 2, the vertex locations stored in the cache are nonsensical when rendering.
To fix this, just set the render subserf value to 1:

If you still want to use two subserf levels, you have two options:

Re-bake, with the viewport subdivisions set to 2

Add another subserf modifier below the cloth modifier. These subdivisions won't be taken into account with the simulation, but they will smooth the result out a little bit (though a smooth modifier could probably get you comparable results with a lot less vertices), and you won't have to rebake.