【Shoal】 , 【bank】 , 【reef】 , 【bar】 can all mean a shallow place in a body of water.
In ordinary use 【shoal】 is applied to a shallow place, especially one that is difficult to navigate.
【Bank】 , often as the plural banks, is applied to one that is formed by a muddy, sandy, or gravelly elevation but is deep enough to make navigation safe for lighter craft (as fishing boats) and 【reef】 , to one where rock lies dangerously close to the surface.
Technically 【shoal】 is applied to elevations which are not rocky and on which the water is not more than 6 fathoms deep, 【bank】 to a similar elevation rising from the continental shelf and usually having a broad flat top under deeper water, and 【reef】 to a rocky elevation on which the water at low tide is 6 fathoms or less in depth.
【Bar】 carries implications found in many senses (as of length, narrowness, and hindrance). It is applied to a ridge of sand or gravel piled up at and often across or nearly across a river′s mouth or an entrance to a harbor and obstructing navigation.