Well, nothing as it stands; but laserlight's considering the possibility that altering the code later might result in code paths in which $result is never defined but end with "return $result" anyway (of course, if that happens, it's a bug anyway).
But hey, there's all sorts of ways the branches could be ordered. Here's another one for the fun of it:
function find_substr($str, $find, $len)
{
if (($pos = strpos($str, $find)) === false) return false;
$result = substr($str, $pos + strlen($find), $len);
if (strlen($result) < $len) return false;
return $result;
}