Counter Point:
I'm a contractor (but not in plumbing).
I don't mind clients supplying "Opinion" material, that stuff where you and I might different on taste, like a tap, tiles, door etc.
But the base materials, stuff like paint, cement etc. I supply.
Reason: Clients always stuff it up.
Example: One job the room was 3105mm, client bought 3000mm boards, should have bought 3600mm.
So we lost a day meaning I did the job at a loss.
So only way I will let clients buy materials is I can come check the materials before we start. I only reduce the price by half the cost of the material.
I actually prefer not to take the "I'll supply the materials" jobs.
If you are that clever, do the job yourself.