I am trying to set up a desktop client of Bitcoin Core, downloaded from Bitcoin.org. The process requires me to download about 350 GB of data of all bitcoin transactions, but there is an option to prune it to size of user choice like 2 or 4 GB. Since the history is the same for all downloads, why not precalculate these 2 or 4 GB and distribute it to new users? Why it is required that they process all the data by their computer?
Because that would require to trust the person that gave you the data (the utxo set). If you could download just the utxo set and start running your node someone could easily circulate fake data i.e credit his own address with 1000 BTC. In order to know that his address does not actually have 1000 BTC you need to replay all the transactions that ever happened and arrive to the correct balance for each address.
An alternative to running a full node (which requires no trust) is to run an SPV client which does not validate all block data but still does header verification.