This cannot be easily configured client-side. It simply depends on the implementation of float-to-string routines. SQLCMD on Unix presumably use the standard routines in the C++ run-time library, whereas SSMS uses .NET. The same difference can be observed
on Windows. That is, SQLCMD will also be more prone to switch to scientifc format and also be more prone to display noise digits at the end. As you may now, float numbers are binary numbers with a 53 bit mantissa, of which there typically is no exact representation
in the decimal system.
If you need formatting for some specific purpose, you can use the STR() function, for instance:
SELECT str(pi(), 10, 4)