Domain-based is very similar to a foreign key in a relational database. When you create it, you'll have to reference which entity the values are in. When the data steward goes to enter values, they'll get a drop-down of the name values from the referenced entity, rather than a textbox.
Free-form is just that, free-form. You can enter text, numbers, dates, etc and specify (to some extent) a data type.
File is for files (documents).