That looks as expected to me. 

The algorithm finds the maximum value in a circle around each cell. For any given cell in a circular looking pattern in the output (e.g. in the lower left of your example, note that I'm not talking about the circle *neighbourhood* used in the focal algorithm, but the visual circle *patterns* in the output), even for cells towards the outer edge of that visual circle, the maximum value is *always* going to be the value in the centre of the pattern. 

Because once your focal alg circle neighbourhood gets more than 2000 cells (circle radius) away from that particular value then the maxiumum value changes.

If you want to see a more continuous output, use a continuous statistic like mean.

This is using QGIS and GRASS r.neighbors, but the algorithm is the same:

Input raster

[![enter image description here][1]][1]


Focal max, note circles in output

[![enter image description here][2]][2]

Focal mean, much smoother

[![enter image description here][3]][3]


  [1]: https://i.sstatic.net/JfMRUdF2.png
  [2]: https://i.sstatic.net/JpRqsdy2.png
  [3]: https://i.sstatic.net/AJlaQFR8.png