The difference is purely the naming. Fields have attributes, pages have defaults. A `maxwidth` e.g. is a field attribute, while a `title` is a page default. It's purely semantics, but in the module.json the `pages`-object should have `defaults: []` and the `fields`-object should have `attributes: []`.

Does this make sense to you? I actually like keeping both separated, but I can see why you'd want to go for the same keyword on both templates, fields and pages for DRY code.