debes usar
preg_replace, ya que con ereg no se puede evaluar nada....
demás, estas haciendo mal la evaluación al usar comillas dobles... de ahí, el error!
Código PHP:
$string = 'esta es mi -frase- preferida';
$vars = array('frase' => 'frasesota');
$string = preg_replace("/-(.+)-/e", 'isset($vars["\\1"])?$vars["\\1"]:null',$string);
tenias que usar el modificador
e para evaluar una expresión de PHP, que también omitiste...
suerte!