Do your evaluation during function body contruction and replace the
Function-head after evaluation
jacobianFunction[func_, vars_List] :=
Module[ {function},
( function[ {vars}, D[func, {vars} ] /.function->Function )]
or apply the Function head to a List construct
jacobianFunction[func_, vars_List] :=
Function@@ { {vars}, D[func, {vars} ] }
More easy define a function generator once for all
MakeFunction = (Set@@{#1,Function@@{##2}}&);
MakeFunction[Subscript[f,1],{x,y},D[f[x,y],x]];
Subscript[f,1]
Function[{x, y}, Derivative[1, 0][f][x, y]]
--
Roland Franzius