Why do very large Fibonacci numbers create an ellipse-type shape?

The "shape" of the blank spaces between the numbers is just an artifact of aligning numbers with a width (or multiple of the width) close to the terminal width, while slowly increasing the number of digits. Fibonacci progression just happens to increase the number of digits at a rate that is roughly the right speed to see the "ellipse pattern" appear, but any pattern that grows in digit count at a similar rate will see such a pattern. Maybe not at the same places, maybe slightly gentler or steeper curves, but similar.

Just as a simple example, printing truncated powers of 1.5 from 300 to 600 produces a very similar pattern:

print([int(1.5 ** i) for i in range(300, 600)])

Power pattern