Naja, welches nun besser für die performenc ist, würde ich mal ausen vor lassen, da da wohl erst an anderen ecken geschraubt werden sollte.
Aber überlege dir einfach.
Will ich immer nur einen bestimmten string durch einen anderen ersetzzen oder will ich komplexere konstrukte ersetzten.
da mit preg_replace eben Strings über eine Regex durchsucht werden kann, ist dies eben sinnvoller, wenn man z.B einen BBcode erstellen will.
Wenn es dir nur darum geht, einzelne wörter zu ersätzen, kannst du auch das substr_replace benutzen.
Vorteil von substr_replace ist hier das man eben ab bestimmten zeichen anfangen kann etwas zu ersetzen oder einzufügen. Welches einfacher ist als mit preg_replace.
Daher kannst das so eigentlich nicht vergleichen. Kommt auf die Situation an.