I don't use BleachBit so can't speak about it. But, I will address the fragmentation.
Two properties of the windows files system causes fragmentation:
First, Windows writes files sequentially (end to end with no space between). So if a files gets larger the new part has to written else where. Also, writing starts with the first available block, whether or not there is space for the whole file.
Second is write failure protection. When a file is saved (or resaved), the original is not overwritten. Windows writes the file to a new location, then verifies that the write was successful before deleting the original. This practice creates many "holes" in the file system.
The combination of these two causes fragmentation to grow quickly.
Ubuntu (and many other linux systems) use the ext4 file system and Smart file allocation.
Ext4 (and other journaled file systems) do not store files sequentially. Ext file systems leave space for potential file growth, and looks for blocks of free space that can hold all of the file when saving. Thus reducing fragmentation as much as possible. Partitions can be used for years and still have fragmentation under 3%.
However, this anti-fragmentation design breaks down when the drive nears capacity (80% or more) since there simply are not large blocks of free space.
e4defrag is the default utility for defragmenting ext4 file systems