per prima cosa invochi la funzione prima di averla dichiarata, secondo dovresti passare il risultato fuori dalla funzione con return.

codice:
<?php

$data = date("d/m/Y");
$source = 'Oggi è il $data.';

function run_code($source) {
    global $data;
    eval("\$str = \"$source\";");
    return $str;
} 

echo run_code($source);