El problema es que las comillas simples, no interpretan codigo, solo almacenan strings puros digamos. Deberias hacerlo asi
Código PHP:
<?php
$string = '<?php';
$string .= "\n";
$string .= '$dbuser = "'.$_POST['dbuser'].'";';
$string .= "\n";
$string .= '$dbpass = "'.$_POST['dbpass'].'";';
$string .= "\n";
$string .= '$dbhost = "'.$_POST['dbhost'].'";';
$string .= "\n";
$string .= '$db = "'.$_POST['db'].'";';
$string .= "\n";
$string .= '$webtitulo = "'.$_POST['webtitulo'].'";';
$string .= "\n";
$string .= '?>';
$fp = fopen('config.php', 'w+');
fwrite($fp, $string);
fclose($fp);
?>
En cuanto a lo de las comillas te lo explico con un simple ejemplo
Código PHP:
$algo = "hola mundo";
echo $hola."\n"; // imprime 'hola mundo' y salta a la proxima linea
echo "$hola\n"; // idem antes
echo '$hola\n'; // imprime '$hola\n'
echo '$hola'."\n"; // imprime '$hola' y hace un salto de linea