The "Generate Time Cards" UI Action is not generating Time Cards for Demands
This is indeed Out of the Box expected behavior.
When we generate the Time Cards, we look only for records extended from the "planned_task" table.
Since the "dmn_demand" table is extended from the "task" table, the Time Cards are not generated.
The code controlling this behavior is found in the "TimeCardGenerator" Script Include's "_getPlannedTasksForUser" method.
On line 116 of OOB Madrid Patch 9 instance is specifically where the "planned_task" table is mentioned.
If you have a requirement of Demand generated Time Cards, you may be able to change the table on that line to "task".
Note that this would be a customization not supported by ServiceNow.