You build speed by playing slow! The reason why you can't play fast is because you can't play slow! Simple as that!
You must learn to play extremely slow and master that. It means playing perfect and smooth timing and internalizing everything.
Why? Because even though you might think you can play something well at a slower tempo, you are not if you can't play it at a fast tempo!
It's simple math:
Suppose you have to do a physical motion from A to B(which, there are an infinite number in actual playing). All these motions involve moving distances. If not, then your hands, fingers, wrists, arms, etc would not move at all. Physics tells us that distance/time = speed Hence, each distance will be "covered" in a certain time and hence the body part will move with a certain speed(in fact, a velocity).
Now, What happens when we speed up we are scaling the time factor. If we play twice as fast we must cut the time we move the distance by 1/2... because the distances are all the same in both cases. (unless you play on a different scaled instrument, in which case many factors change)
so
d/t and d/(t/2) = 2*d/t.
This says that when we speed up 2x we are effectively having to cover twice the distance(mathematically, not physically). It also says that are playing twice as fast(which we already know, of course).
But what really happens when we try to play faster is that we do not actually play the same way(unless we can do it). We try to compensate and change our technique to be able to play faster. e.g., suppose preparing for a note is this "cheating" technique that we do... which, at fast tempos actually causes us problems.
Let me explain:
Suppose you must play a low C1 bass note with the left hand then a C3 with the same hand. At slow tempos we can play the C1 then immediately move to the C3 and rest it on the C3 and wait to play it when it's time. At fast tempos, we cannot do that. Because we have to process more stuff, things get choppy trying to manage it all... after all, our brains can only do so much and it will drop out things and take shortcuts.
If we have practiced our piece slow by preparing the C3 note, when we move to playing it fast, the preparation of note then becomes a hindrance. Why? Because we cannot actually prepare... we have trained our self to do so at slow tempo but now we have changed the technique in to something we haven't actually learned... and we then screw it up because, simply, we haven't practiced that. One could say that you should practice at a fast tempo only, and that would be ideal if we could do it, but that's not how reality works(if it did, we wouldn't have this discussion).
So, what do we really do? We actually play very very very slow(as slow as we can) and pay attention to every detail(which we can do because our brain doesn't have to try and cram everything in at quick). We pay attention to not cheat and remember that if someone else can play it that fast then we can to.
We develop correct technique at these slow speeds. We then work our speed up gradually once we can play it PERFECTLY at the slow speed. Any imperfection will creep in and create a weakness when played fast(think of a motor with a bad bearing... sure it might work at slow speeds but the faster it goes the more that bad bearing will cause problems).
So, playing slow is not "Oh, shit man, I can play it slow easily! No problem!"! Just because you can play something slow doesn't mean you are playing it in the same way as you would play it fast. In fact, you probably aren't. What we want to do is train the body and mind to play it the same way slow as we would fast(if we could).
Eventually this becomes ingrained and we don't have to play everything so slow but it is the correct way to learn. People that avoid it generally play sloppy when they play fast.
Now, this is a progressive training. It is not something you just get by someone telling you. It is something you have to train for and get better and learn yourself. Slow done if you want to speed up! Pretty simple and it works even if you think it makes no sense. Try it. Give yourself a month and you'll see the benefits and it will carry over to everything you do in the future.
This does require you to play with a metronome, so if you can't do that, that is one of your problems.
We must play perfectly in time with the metronome and the metronome is their to tell us when we are off. When we are off, that is a flaw in our technique that will become terribly obvious when we speed up because the error in timing will be amplified(we might not notice it at such a slow tempo or people will just call it rubato, but at a fast tempo that turns in to a jumbled mess).
e.g., suppose you miss a note at a slow tempo by 1ms. Over the beat of 250ms(60bpm in 4/4), that is just 1/250th of a percent off, but over a faster tempo of 25ms that is 1/25th of a percent off, a factor of 10, which makes it much more obvious(in reality we might cheat or use momentum to reduce the factor but it's still much larger and more noticeable).
The metronome is the way to solve those problems... start slow and build up. Eventually you'll get it and understand what I'm talking about(you can feel it better than I can explain it to you, but you have to put in the time to get to the point where you feel it and understand it on that level).
Eventually, with enough time, it will be second nature and you won't have to do it with every new piece... which is ultimately where you want to be.