Your benchmark for 50k length arrays is busted. You are building up arr1 in each run of the test case, which means it is longer and longer on each pass. This is obviously going to favor push, which is only going to copy each power of two, whereas concat has to copy every time.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.