In the code below, friendBlocks has 800+ items that look like this:
Some Name
&l
This is noticeably much faster than your original code when tested in jsfiddle:
var blocks = $('div.block');
var foundBlocks = blocks.filter(function() {
return $('span.title', this).text().toLowerCase().indexOf(text) >= 0;
});
foundBlocks.show();
blocks.not(foundBlocks).hide();
JSFiddle Example
I tried changing it so it cloned and then did the show/hide but I didn't notice any obvious difference in speed. Although this was chrome, other browsers may be slower.