It's got nothing to do with fraud checks. Transfers take days because banks largely run on mainframes programmed in the 1970s. Because of the (by todays standards) peculiar designs those machines had, the bulk of the work is done at night in batch jobs. The vast size and complexity of the software, combined with archaic platforms, their business-critical nature, and almost total absence of competition means that banks don't upgrade to more modern systems unless forced (see the UK same day payments initiative). Then the banking network is not a perfectly connected system so sometimes payments must be routed via intermediate banks. That's why it can end up taking days.