Gray sockets are for scalar (single e.g. 0.73 or 512.256) values, and blue sockets are for 3D vector values such as <0.0, 0.707, 0.707> or <5.1, 8.2, 3.3> (one for each axis).
Since Blender supports vector displacement, the Displacement socket is now a vector socket. When you link a scalar to a vector socket, the three vector components all receive the same value. For example, 0.618 would become <0.618, 0.618, 0.618> and -1 <-1, -1, -1>. This conversion from a scalar to a vector can only result in two directions along one axis, but normals can face in any direction. For example, a sphere's normals face away from the center in every direction.
The Displacement node can convert a scalar to a vector that can be used for displacement/bump by making use of the object's existing normals. It should give you the results that you're looking for.
Press ShftA, Vector (V), Displacement (D) to add one.