My observation is that "cloth" tends to be used for domestic items, e.g. clothing, serviettes (napkins in AE) and "fabric" tends to be used for heavier applications, such as tents, tarpaulins, rucksacks, canopies, etc.
I see a distant relationship between fabric and fabricar in that fabric has to do with the way it is made, something constructed, from Latin fabrica, craft, workshop, from faber, fabr-, workman, artificer.
Cloth comes from German/Middle English roots = garmet. While they come from different roots they both end up in the same place.
PS: I don't see the distinction that sdgraham is trying to make?
They are synonymous but if I had to distinguish between the two I would say that fabric is more substantial or more finished (stamped with a design, woven in colors like plaid). Maybe this will help (and maybe not).
Fabric is a more general term than cloth. It has a range of meanings, some of which relate to cloth. For example, it is possible to refer to the fabric of a building, meaning the basic structure - and figuratively, to the very fabric of my being.
I don't think, though, that a fabric can be anything other than some kind of cloth. In this sense, I can't detect any difference.
I would say that cloth is any kind of fabric that is woven on a loom, with heavier fibres, such as Harris tweed, I think that a suit would be made of cloth. Fabric to me is a lighter type of fabric that is woven from lighter fibres, such as cotton or silk, or man made fibres such as viscose and polyester.