Inserting in the middle forces every later element to move. An array keeps its values packed with no gaps, so making room at position k means shifting everything from k onward one slot to the right.
If you insert near the front of a million-element array, you shift almost a million elements. That shifting is the O(n) cost, and it grows with how much sits after the insertion point.
Appending at the end avoids this, because nothing follows the last element. The same logic applies to deleting from the middle: the gap must be closed by shifting later elements left. When you need frequent middle inserts, an array is often the wrong tool.
Rewriting in plainer words…
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.