You cannot do that, unfortunately.
symbolic functions at the MATLAB level are strictly created by evaluating a symbolic expression to get a result, and using symfun() to wrap the sym in an object along with a list of parameter names. At execution time, MATLAB extracts the sym, sub()'s the input value for the parameter name, and returns the result. You can never get the right level of deferment to define a useful symbolic function that operates on symbolic expressions.
You can use evalin(symengine) to define a proc at the MuPAD level, but unless you prevent the result from displaying, the MuPAD engine will reset as soon as it is to be displayed.
You can define anonymous functions that do things like
syms a b F(x)
Fint = int(F,x,a,b);
L = @(f) subs(Fint, F, f)
but L will not be a functional: it is not possible to express the deferment needed.
There just might be a way involving a using feval(symengine) to hold() an expression, but I have my doubts.