To me, it looks like a usual/known ROOT integrator’s misbehaviour.
{
RooRealVar x("x", "x", 1, 3);
RooRealVar lambda("lambda", "rate", 1, 0, 100);
RooGenericPdf expo("expo", "expo",
"lambda * exp(-lambda * x)",
RooArgList(x, lambda));
auto marginal_x = expo.createProjection(RooArgSet(lambda));
RooPlot *xFrame = x.frame();
marginal_x->plotOn(xFrame);
xFrame->Draw();
}