The main difference is that Arena keeps track of everything you allocate with it. You can call Arena#close() to free everything it’s allocated. If using nativeHeap, you need to free everything individually.
Arena is useful when several structs have the same lifetime, since you can free them all at once.