Minecraft wiki entry for Development_versions, associated text: When fishing, treasure loot can now only be obtained by fishing in open waters.
A fishing location is considered to be open water if the following conditions are met:
There is at least a 5×1×5 area of water beneath the bobber and a 5×2×5 area of air above (for a combined 5×3×5 free area required).
Waterlogged blocks that have no collision, such as signs and coral count as water. However, bubble columns do not.