あなたの正しい表現は次のようになります:
<textFieldExpression><![CDATA[utils.Hello.hello()]]></textFieldExpression>
作業サンプル:
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport ..>
    <queryString>
        <![CDATA[SELECT DISTINCT city FROM address ORDER BY city]]>
    </queryString>
    <field name="CITY" class="java.lang.String"/>
    <detail>
        <band height="20" splitType="Stretch">
            <textField>
                <reportElement x="0" y="0" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{CITY}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="100" y="0" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[utils.Hello.hello()]]></textFieldExpression>
            </textField>
        </band>
    </detail>
</jasperReport>
レポートにインポート命令を追加することもできます。この場合、式は次のようになります。
<textFieldExpression><![CDATA[Hello.hello()]]></textFieldExpression>
作業サンプル:
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport ... whenNoDataType="AllSectionsNoDetail">
    <import value="utils.Hello"/>
    <title>
        <band height="41">
            <textField>
                <reportElement x="188" y="11" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[Hello.hello()]]></textFieldExpression>
            </textField>
        </band>
    </title>
</jasperReport>
注:どちらのサンプルでも、jarファイル(utils.Helloクラスを含む)はクラスパスに含まれている必要があります。

srciptletsの使用に関する詳細については、こちらをご覧ください。