Steps to reproduce
Create a pool of water several blocks wide. Make the pool at least 2 water source blocks deep because of MCPE-122278. Use full height blocks (e.g. sand, grass, dirt, or clay) around the edge of the water because of MCPE-165109.
Spawn several dolphins about 10 blocks away from the pool.
Expected result
Within a few seconds the dolphins start crawling toward the water.
Observed result
The dolphins constantly bounce in random directions. They occasionally bounce in the direction of the water 3-4 times in a row but then move in a random direction again. Some may land in the water by chance while others drift away from the water and dry out and die over time.
Related issues
discovered while testing
Comments


Can confirm, although there's one thing: this also happens in Java Edition, and appears to be working as intended per MC-128243.
About point 2: JSON maps are unordered, and remove
always happens before add
regardless of their order in the file, so that one is not related

Thank you for your report!
However, this issue has been closed as Working as Intended.
If you need help or have a suggestion you might like to follow a link below.
Quick Links:
📓 Issue Guidelines – 💬 Mojang Support – 📓 Project Summary – 📧 Suggestions – 📖 Minecraft Wiki
This issue seems to have several causes:
Dolphins constantly bounce randomly on land. This is a fish behavior that is not appropriate for dolphins. Real-life dolphins do not flop like fish when out of water; rather, they get beached like whales and have limited ability to move. I believe that in earlier versions dolphins would slowly crawl on land. I am not sure in which version this changed. The fishy bouncing/flopping appears to be hard-coded as I cannot link it to any data-driven behavior component.
In the dolphin.json, the events for "navigation_on_land" and "navigation_off_land" have the "add" and "remove" sections in the wrong order. "Remove" should always be before "add" in case the relevant groups contain copies of the same component. Dolphins use navigation.generic in both of their navigation component groups, so having the "remove" after the "add" has the effect of removing navigation.generic entirely and therefore making it ineffective. (In-game, dolphins are probably using an older, hard-coded navigation.)
In the navigation.generic component within the dolphin_on_land" and "dolphin_on_land_in_rain" component groups, "can_swim" is set to "true". This should probably be set to "false" in case it triggers flopping on land or invokes the bug that causes MCPE-45645 and MCPE-37229.
The fix reported for MCPE-44918 in the 1.16.100 changelog may not have been effective. From looking at the json the only behavior changes between 1.16.0 and 1.16.100 are the separate parity change to drying out time, and renaming the events and component groups to no longer use the "minecraft:" namespace. No change was made to the data-driven behavior logic.