When talking about indexing, it provides a structured way of accessing the array elements. It's not so much a mathematical property of a binary tree (at least, that's not how I'd look at it), as more of a way of modeling the data for efficient lookup and storage in an array.
An array based solution allows for a compact representation of the tree. You commonly see this in a binary heap data structure. One nice aspect is that when percolating an element upwards after the root has been removed, we can simply swap array elements rather than worrying about updating node pointers.
In reality, you can adopt whatever indexing convention you want. This one happens to make sense though.
Also, this property holds for all k-regular trees. So for a ternary tree, we index using 3n, 3n+1, and 3n+2. Notice the quotient-remainder theorem coming into play here. Since a binary tree is a 2-regular tree (obviously excluding leaves), the $2$ ensures that a node's children appear after its siblings. So on level $1$ with nodes $n_{2}, n_{3}$, $n_{2}$'s children are $n_{4}$, $n_{5}$, which puts them past $n_{3}$ without wasting empty array spots. As we add $2k$ nodes to level $k$, we need to make sure we allocate double the space for the first node's children at that level. Naslundx did a good job of showing this formally. Hopefully this adds some intuition as to why we choose this indexing schema, as well as why it works.