In the SQL Server error log, it should tell you why. I found this on a customer system (really just pasting the message for Google juice):
SQL Server detected 4 sockets with 8 cores per socket and 16 logical processors per socket, 64 total logical processors; using 40 logical processors based on SQL Server licensing. This is an informational message; no user action is required.
I got the likely explanation from here:
For customers with Software Assurance on existing SQL EE Server licenses (or access to them under their current Enterprise Agreements during term) a version of Enterprise Edition was created to enable them to upgrade to SQL Server 2012. This version has technical restrictions limiting an instance to using only 20 processor cores (40 CPU threads with Hyperthreading).
Summary: in the error log, the edition will be reported as either Enterprise Edition
or Enterprise Edition: Core-based Licensing
. If it says the former, as in the case of the aforementioned customer system, you will need to obtain a core-based licence to use all the available cores.
If that isn't the case and you're already licenced for all cores, check your affinity mask settings, particularly if they were set, and the underlying hardware was upgraded.