For one thing, "fabric" is broader. It is not an absolute, but "cloth" usually means fabric intended for garments or clothing. You would probably say "fabric," not "cloth" if you were upholstering a chair, or decorating a wall, or covering the wings of a World War I airplane.