The first thing I would like to do is use single quotes (some shells will expand wildcards, although I don't think bash does, at least by default), and the first argument to find is a directory, not a list of files:
find ~ -name '*.txt' -print > list_of_txt_files.list
Other than that, it can take a lot of time, although I can't imagine anyone having a lot of text files (you say that you have a lot, but it should be quite massive to slow down find ). Try first without redirecting and see what it outputs:
find ~ -name '*.txt' -print
source share