What causes the slight deviation from virial theorem after geometrical optimization?

When I run geometry optimization of H2O using STO-3G or 3-21G basis set and UHF, the energy components of optimized structure deviate slightly from virial theorem stipulated:

Kinetic energy = 75.424942151953331
Total energy = -75.585962823645531

What could cause this small difference, given that the gradients are pretty close to zero?

Here is the input file used:

molecule h2o {
O
H 1 0.96
H 1 0.96 2 104.5
}

set basis 3-21g
set scf_type pk
set g_convergence GAU_VERYTIGHT
set reference uhf
E, wfn = optimize(‘scf’,return_wfn=True)

If I read correctly this book, Basic Principles and Techniques of Molecular Quantum Mechanics By Ralph E. Christoffersen, pp 460, virial theorem applies to non-exact wave function as long as the geometry is optimized, independent of the choice of basis set.