Insert one expression into another using Eval Insert, Eval Expr, Parse, and Substitute is good post regarding this. << Get Selected Columns() does return a list of columns, so you might have to take that into account somehow (not sure why Column(cols) works, but I would suggest changing it to Column(cols[1])).
Edit:
Here is one example what you could do. If you have any questions, please ask!
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Select Columns({"height", "weight"});
sel_cols = dt << get selected columns("String");
Eval(EvalExpr(
dt << New Column("Mean " ||sel_cols[1], Numeric, Continuous, Formula(
Mean(Expr(NameExpr(AsColumn(dt, sel_cols[1])))[1::20])
));
));

-Jarmo