Implementing vectors as a subtype on lists allows the developers to reuse the large body of existing definitions and lemmas pertaining to lists when developing and working with vectors. This kind of reuse ends up being very important for building a coherent and somewhat manageable ecosystem, especially when proofs are thrown into the mix.
Additionally, Lean 4 compiles lists to native arrays, so the subtype implementation is preferable from a performance perspective. The subtype implementation was used in Lean 3 as well, so I don't think performance was a motivating factor in this particular case, but it's something to think about.
Scott Morrison correctly points out Lists don't compile to native arrays.