also the emulators are ports if they were made for the 3ds from scratch they would run way better
Not necessarily. You can port something over, optimize it for the hardware, and add features specific to the hardware. It's just that also takes a lot of work. The libretro team generally doesn't port cores beyond just getting them to work, mGBA is still in heavy development, and CitrAGB has been abandoned (as far as I know).
Chances are, if CitrAGB made it to a finished state, most of the code probably would have been replaced with code specifically for the 3DS. Making a port just gives you a starting point. As long as everything is opensource in it, it can slowly be broken down and replaced with more efficient code. It's just that the work required to get a GBA emulator running fullspeed is a bit of a turn off for developers, considering there are far better portable alternatives