Any attack across any significant body of water, at any time, puts the attacker at a stiff tactical disadvantage.
- Only a few points where crossing is possible (fords, bridges, boat landings), allowing defenders to focus on those points
- Crossing is slow (wading a ford, or funneling your troops through available boats / across a bridge), leaving you exposed and giving the enemy time to bring in reinforcements
- No cover while crossing (both from being spotted and being shot at)
- Troops in vulnerable disarray for some time after the crossing
- If opposing bank is held in force, uphill fighting against prepared positions with no room for maneuvering
- No real avenue of retreat (see points 1-3 above)
Depending on the time frame / geography, you might also be out of effective range of your own archers / artillery / ... on the far side of the body of water, while being in effective range of the enemy's.
This makes even medium-sized rivers like the Rappahannock tricky to cross. As this video states, the crossing of the Rappahannock was...
...the first riverine crossing under fire in American military history.
All this makes a river a "natural defense". Easier to defend than open ground, in any case.