The section should help you understand these basic differences.
Field name is an internal CloverDX denotation used when, for example, metadata are extracted from a file. Field names are not arbitrary - you cannot use spaces, diacritics nor accents in them. The field names serve as an identifier - it must be unique within the record.
Field label is automatically copied from the field name and you can change it without any restrictions - accents, diacritics etc. are all allowed. Moreover, labels inside one record can be duplicate. Normally, when extracting metadata from a CSV file, for example, you will get field names in a "machine" format. You can then change them to neat labels using any characters you want. At last, writing to an Excel file, you let those labels become spreadsheet headers. (Write field names attribute in some writers, see Chapter 56, Writers)
Description is a pure comment. Use it to give advice to yourself or other users who are going to work with your metadata. It produces no outputs.