Thought I'd chime in since I've been dealing with bad visibility lately. For where I'm at in Hawaii, all of the above mentioned possible causes are valid. Wind, swells, tides/current, bottom conditions, weather. Mostly rainfall runoff and whether the area has sandy, silty, or dirty bottoms. I also take a look at what kind of soil is on land where the water is running off from. There are some places where it's mostly lava rock on land, so visibility is better after a rainfall event than areas where fine soil exists on land. Usually visibility from rainfall runoff clears up in a couple days, but in some areas it takes weeks. So it all depends on the physical nature of the area.
Other than runoff, swells have a big impact on visibility, depending on what's on the bottom. Normally anything above 5ft swells with sandy bottom is asking for poor vis.
Current usually runs along the coast, so visibility after a rainfall can almost instantly clear up if you pass the mud cloud or if the current changes direction. However, this is usually temporary as you'll soon run into another poor vis area. Hard to escape runoff.
I've seen wind blow huge amounts of soil into the coastal waters when the wind is high and especially after a fire, since there's no vegetation holding the soil together. I haven't found chop from the wind to be too much of a contribution towards poor visibility.