Is there a way to create system fields i.e a field which cannot be modified by the user?
In this case, do you mean that the value of the field should not be edited or the field itself?
If it is about the field name, then you can check our Permission Sets, there are some related to adding and editing custom fields.
If it is about the value, for example "Category: Blue" and users should not edit "Blue", then unfortunately no. Currently, if the user can see the item and has access to the data, the user can also edit the values in these fields. Something we can keep in mind as feedback for the future.