Using python, how do I delete all text in a text block, without using cut?
Text blocks have a clear() method which will clear all lines:

import bpy
bpy.data.texts['Text Block Name'].clear()


Alternatively, if you need to access each line individually, Text blocks have a lines property which you can loop over, setting the body property of each line to a blank string (""):

import bpy
t = bpy.data.texts['Text Block Name']

for line in t.lines:
    line.body = ""