This has nothing to do with the cell array.
Within each cell of your cell array, you have a 3D matrix. You are looping over the rows and pages of that 3D matrix and finding the non-zero elements in each column (by the way you don't need the ~=0, that's what find returns anyway). You are then putting the non-zero elements of the column into a new matrix. The problem is that for each column, you're not going to have the same numbers of non-zero elements in each columns. Hence you can't store them in a matrix.
You could potentially store them in cell arrays within your main cell array. But I suspect that a completely different approach would be better. What is the end goal?