is it a good practice if I use array for each face of the dice instead of using shift D to clone?
Generally, in most cases it's probably better to use the Modifier instead of Shift+D, but sometimes it's just quicker and easier to use SHIFT+D (and there's less thinking involved, than when you use an Array Modifier). It also depends on the amount of 'instances'.
For instance, if you want to make a classical (3x3x3) Rubik's cube, SHIFT+D is better than 3 Array Modifiers.
In the case of the dice, I don't see how an Array Modifer would give you any advantage over simply SHIFT+D, but I encourage you to try both ways and decide for yourself.