With hash tables adding them in order does not mean their stored sorted numerically based on their key value as well. Their stored sorted on their hashes.

The following code demonstrates this:

//var %x = 1 | while (%x < 100) { hadd -m th %x hello %x | inc %x } | hdel th 50 | echo -a $hget(th,50) => $hget(th,2).item | hfree th

$hget(th,50) does not echt hello 51 it just doesn't excist, In arrays slicing a piece out (hdel) would bump the rest back up.
$hget(th,2).item does not return 2 but 4.

This is the major advantage of non-ascociative arrays over hashtables. I'd love to see native array support although i rather see a pop/push/slice etc terminology implemented over hixxy's suggestion.