There is little that can be avoided of mixing html with your php in this instance however, I think the alternative control structures make for a nicer read than having your block of html encased in a single echo statement.
If you want to remove your php even more from your html, HEREDOC and NOWDOC (php 5.3 +) make this very easy with a little sprintf/printf usage.
There really isn't a right or wrong in this case, except your original example, but that was corrected by jtreminio.
<?php for( $i = 0; $i <= 10; $i++ ): ?>
<tr>
<td>
<input name='rate<?php echo $i; ?>' id='rate<?php echo $i; ?>' type='text' onkeyup='integeronly(this)' >
</td>
<td>
<input name='qty<?php echo $i; ?>' id='qty<?php echo $i; ?>' type='text' onkeyup='integeronly(this)' >
</td>
<td>
<input name='amt<?php echo $i; ?>' id='amt<?php echo $i; ?>' type='text' readonly='readonly'>
</td>
</tr>
<?php endfor; ?>
If you want to take the chance you can use the shorttag echo, but ymmv:
<?php for( $i = 0; $i <= 10; $i++ ): ?>
<tr>
<td>
<input name='rate<?=$i?>' id='rate<?=$i?>' type='text' onkeyup='integeronly(this)' >
</td>
<td>
<input name='qty<?=$i?>' id='qty<?=$i?>' type='text' onkeyup='integeronly(this)' >
</td>
<td>
<input name='amt<?=$i?>' id='amt<?=$i?>' type='text' readonly='readonly'>
</td>
</tr>
<?php endfor; ?>
You could also use HEREDOC with the sprintf functions, *BUT* you must escape the '$' placeholder. This will work with php < 5.3.
<?php
$html = <<<HTML
<tr>
<td>
<input name='rate%1\$s' id='rate%1\$s' type='text' onkeyup='integeronly(this)' >
</td>
<td>
<input name='qty%1\$s' id='qty%1\$s' type='text' onkeyup='integeronly(this)' >
</td>
<td>
<input name='amt%1\$s' id='amt%1\$s' …