Fact Table With Non-Measure Data

Your design is correct. There is nothing wrong with including free text as a degenerate dimension into a fact table.

Storing comments in a dimension makes sense only if comments are structured (i,e, if they are standardized and effectively have 1:M relations with the fact records). If they are stored as free text, and thus have 1:1 relations with the facts, then converting them into a dimension is a big mistake - you will end up with a dimension as tall as the fact table. In proper designs, dimensions are wide and short, while fact tables are narrow and tall. Tall dimensions are a problem, because they are very expensive in terms of performance.

They are also hard to use. Let's say, you are using a reporting tool such as PowerBI. If you store your free text as a degenerate dimension in a fact table, it's easy and intuitive to use - I can write something like:

Reason for Absence = SELECTEDVALUE( Fact[Description])

and the comment will be properly displayed in a report. Done.

But if you store the same comments in a dimension, well, good luck figuring out how to add them to the report.