well the emulators on the ds ran full speed and the ds is way less powerful then a 3ds
Retroarch has not been ported on NDS so your comparison is irrelevant.
As for emulators running fullspeed on NDS, there aren't that much, really. Maybe NES and Master System. Jenesis run decently but there were huge resolution issues. CatSFC runs better on 3DS than NDS (hopefully).
If you talking about DSTWo, this is a different beast with its own processor.
Anyway, you have to understand that those emulators which run fullspeed were developped from the ground for the system they run on.
They use hardware-accelerated emulation that can only work on this specific system.
This is not what Retroarch is about, Retroarch is providing a frontend for portable emulators designed to run on all platforms (PSP, Wii, Xbox, PS3, 3DS, Android... etc, up to your PC)
This is something that I've wondered about for a little bit. You know how many people complain about wanting a PSX or N64 emulator for the 3DS? Hypothetically, for a difficult project such as that, what would be the most efficient approach? Would it be better to start by porting something like the corresponding RetroArch core, without expecting anything playable due to framerate or whatever, and then rewriting to optimize from there, or just starting entirely from scratch? I keep hearing how porting something like an emulator won't have the same level of performance as a custom-built project, but as just an end-user with not nearly enough programming knowledge to do anything like this (I can write incredibly simple programs in Game Maker, and a scripting language that I'm told is very similar to C++), I've noticed the ported emulator working better than the custom-built one. (Special-chip games like SMRPG and StarFox work in RetroArch to a degree, while they don't even start in BlargSNES) I understand the theory behind it, but I've never noticed enough of a difference to make it apparent.
Main reason is that speed optimization always comes down to a price for accuracy and compatibility. People might refuse to accept it or say they do not see that much difference (either because they don't play every games or because they don't play games long enough to see bugs) but that's a fact. Another thing is that to make your emulator hardware-accelerated, you usually end up rewriting most of the things from scratch because it generally means you have to rewrite lots of C/C++ code into target ASM and rewrite the video rendering code to use the hardware GPU, shaders, etc...
Most of hardware optimized emulators are based on portable emulators anyway (PocketSNES for example is initially derived from Snes9x) so nothing is never really entirely "built from scratch".
For example, you say "ported emulator working better than the custom-built one" but how do you define "better" ? If you mean game compatibility and accuracy of video/sound, off course they will always be "better", they are emulators that have been developped for MANY years, got a lot of users to report bugs and lots of talented devs working on it to fix bugs and improve the code. But if you are talking about speed, BlargSNES is definitively better than CatSFC and a lot better than Snes9x-next, it would be really hard not to notice it. The ideal is a mix of both but getting speed AND accuracy on very WEAK systems like the 3DS is just impossible (remember it only has a 268 MHz CPU to run things, do anyone remember how emulation was on an old Celeron P266 ?), no matter how much non-technical chatters tell you "everything is possible blah blah"
Now , New 3DS is a different beast since it apparently runs between 1,5x and 2x faster than old 3DS, which can get you up to 536 Mhz and is somehow on par with something like the Gamecube that had many accurate emulator ports running fullspeed (maybe even more, I saw a mention of 804 Mhz implying that it was 3x the raw power of one old 3DS core but I'm still not sure if that's the true speed or just some made up number).