|   | 1 |  initial version  | 
One problem might be that you aren't working over the fraction field.  Are you sure you want Hermite form and not a different echelon?  Note that this is even partly documented - if you add the line M = M.change_ring(R.fraction_field()) as suggested in http://doc.sagemath.org/html/en/reference/matrices/sage/matrix/matrix2.html (search for "hermite_form") it still does the same thing.  
On the other hand, M.echelon_form() does what you (apparently) want.
R.<x> = QQ[];
@interact
def _(form=['Hermite','Echelon']):
    M = matrix(2,2, [x,x, 0,x]);
    M = M.change_ring(R.fraction_field())
    if form=='Hermite':
        show(M.hermite_form())
    else:
        show(M.echelon_form())
I don't know enough about the Hermite form to say more, but this is often what the issue is for other users in a similar situation. If this is wrong, then this is probably a bug, as opposed to inadequate documentation.
 Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.
 
                
                Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.