You can’t use a generate statement inside a covergroup. But you can declare an array of covergroups each with a single coverpoint:
bit [1:0] ptr[192];
covergroup ptr_val_cg(ref bit [1:0] ptr);
coverpoint ptr { bins ptr_val = {0,1,2};}
endgroup
ptr_val_cg ptr_cg[192];
initial begin
foreach (ptr[i])
ptr_cg[i] = new(ptr[i]);
end