In simple words :
The first element in the array has Zero displacement (no distance from the start ) and hence it has to be zero, Likewise , the next element has index 1 which means its displacement is 1 from the start of the array !
If you know about pointers then this will be an useful explanation
Let us consider an array A[n] elements , Here the name of an array 'A'is a pointer pointing to a specific memory location. so A[n] would point to the memory location of nth element. but the first element in an array is stored in the memory address of 'A' itself and therefore it has to be zero. if you give the first element index as 1 , it means that the distance of first element is 1 from the start which is not true as the first element is the start of an array itself..
Hope this helps !