Looking through the code, it looks like only the player level matters when determining the material type. In fact, how the random roll works is interesting and seems to explain why orcish is so rare.
The relevant code is actually here ->
https://github.com/Interkarma/daggerfal ... Builder.cs
Specifically, lines 104-127 defines the function using parameters from lines 38-41.
Since what the code does isn't immediately obvious, here is some explanation for those who are interested in the details:
1. First, a set of parameters get defined: materialsByModifier = { 64, 128, 10, 21, 13, 8, 5, 3, 2, 5 }. What this does is assign a number for each material type in the game (first entry is iron with a value of 64, second one is steel with a value 128, and so on)
2. The function then rolls a random number from 0-255
3. This number is further modified by player level. Specifically, if player level < 10, it subtracts a value 4 x (10 - player level) to the roll. If player level > 10, it add 2 x (player level - 10) to the roll. This value is further capped and floored to stay between 0 and 255.
4. After that a single sequential pass is executed against the parameters defined at the beginning, comparing each value to the roll. if the roll <= parameter, then the material corresponding to the parameter is assigned. Else, it tries the next materials' parameter after subtracting the previous one from the roll.
This is better explained with an example: Let's say the rolled value is 150. The first parameter is 64, corresponding to iron. Since 150 > 64, it moves to the next material, but subtracts 64 from the rolled value, resulting in 150-64 = 86. The 86 is then compared against Steel's parameter, which is 128. Since 86 < 128 the material assigned is steel in this case.
A consequence of the way the material parameters are assigned makes orcish very rare indeed (orcish has a value of 2 and daedric has a value of 5). Moreover, as the player levels up further above level 10, the bonus roll from the level (step 3 above) actually increases the effective range of daedric from 5 to a higher value each time since it is more likely that a high random number roll gets capped to 255 instead of landing in the narrow range required for orcish.
At player level 1, the maximum possible roll is 255 - 4 x (10 - 1) = 219. Only at level 9 and above, it becomes possible to roll an orcish or daedric item. At level 8 and below, neither orcish nor daedric is possible. This, along with the previous observation, actually explains why orcish is rarer than daedric since it doesn't get an exclusive level where it is the highest material possible and requires a narrower roll range than daedric.
Luck does not affect the roll, only the player's level has a factor (level acts as a penalty to the roll before level 10 and a bonus afterwards). All instances where random loot/items get assigned uses this function to determine the material.