Es que estás haciendo cosas distintas:
En el primero:
Parameters.ParamByName('servicio').Value:=wservicio;
Parameters.ParamByName('cuota').Value:=wcuota;
El campo "servicio" de qué tipo, y la variable "wservicio" de qué tipo es?
En el segundo:
sql.Add(' '+QuotedStr(wservicio)+', ');
sql.Add(' '+Inttostr(wcuota) +')');
Aquí estás pasando el valor de la variable wservicio entre comillas, sin embargo, en el modelo anterior... no!!!
Es lo único que puedo sacar con tan pocos datos
