Digispark / Digikeyboard code doesn't execute inside setup{}
The (hard to find) documentation on the DigiKeyboard example:
http://digistump.com/wiki/digispark/tutorials/digikeyboard

States:


  It is essential that DigiKeyboard.update() is called regularly (the
  beginning of the loop is good) to maintain USB communication. Using
  DigiKeyboard.delay() will automatically spam DigiKeyboard.update()
  calls during the delay period. If your loop code is fast just using
  DigiKeyboard.delay() will be sufficient.


Without looking deeper into it, I suspect that your initial call to DigiKeyboard.print() fills a buffer and DigiKeyboard needs subsequent repeated calls in order to empty the buffer.

Does the problem still exist if you put DigiKeyboard.update() as the only statement in the loop() function?