I assume you mean the decision between (a) storing data fully on the chain, and (b) storing only a hash of the data on the chain, with the data itself stored elsewhere.
The main reasons to store data fully on the chain are (1) to gain maximum robustness and redundancy for retrieving that data from the network as a whole, and (2) to create a simpler system with fewer moving parts.
The main reasons to store data off-chain are (1) to save disk space and bandwidth for all of the nodes, and (2) to address any confidentiality concerns about the data being copied to every node.
You need to assess the relative importance of all these reasons for your use case.