BGE: Writing text letter by letter
Instead of using an always sensor, try a delay sensor to trigger the script. Slow it down by increasing the delay value and check 'repeat'. The text object needs an integer Game Property named 'counter' to work with the script.

import bge
cont = bge.logic.getCurrentController()
own = cont.owner

message = "Don't wish it were easier, wish you were better!"
mlen = len(message) # length of the string

if own['counter'] &lt; mlen :
    own['counter'] += 1
    own.text = message[0 : own['counter']] # slice indices