No puede ser, lo probé y funciona correctamente, es algo demasiado simple, estas seguro que probaste con mi código y no con el tuyo?
Código PHP:
<?php
$var = array("Lea Thompson", "Joe Penny", "William R. Moses");
foreach ($var as $datos) {
$wordClean[] = preg_replace('/[-:\.]/', '', $datos);
}
print_r($wordClean);
?>