Since your parameter  `i` in `Button` is outside Table, it is not a number anymore. However you could do e.g. this :

    Button["Number: " <> ToString @ #, Print @ #] & /@ Range[5]

If there is a need for `i` parameter one can do this :

    Button["Number: " <> ToString @ #, Print @ # ] & /@ Table[i, {i, 5}]

As it was stated the system doesn't evaluate `i` inside `Button` because of its `HoldRest` attribute.