PyPiでcffiを検索
↓
https://pypi.org/project/cffi/ を見つける
↓
Download files を見る
↓
Pythonのバージョン + OS + PythonのCPUアーキテクチャ の組み合わせでwhlが提供されているか確認
と確認します。whlが提供されてないなら、ソースをダウンロードしてコンパイルをしないといけない状況です。(あるいは、ピュアPythonなパッケージでソースをダウンロードして展開するだけでよいか)
cffiはその目的から考えても、CPU別のwhlを提供していることから考えても、ピュアPythonではない、個別のCPU向けバイナリを含むパッケージでしょう。
Download filesではPython3.9, mac OS だと、x86_64 向けの whl だけが提供されています。
つまり、公式がPython3.9+mac OS+arm64向けにビルド済みバイナリを配布していないということです。
ここまでが、pipでインストールに失敗した時にます確認することは何か? という回答です。
M1 Macbookを使っていることと、起きているエラーから逆算すると、質問者さんはPython3.9の、M1向けのバイナリを実行しているようです。
ppaul さんの回答の通り"Python3.9向けの準備が進んでいない"パッケージもあれば、"Python3.9向けの対応は済んでいるけれども M1 向けの対応が進んでいない"パッケージもあります。
そういったケースにあった場合、今どういう状況か(対応がそもそも済んでいないのか、リリースはまだだがレポジトリ上のコードでは対応済みなのかなど)をそのパッケージのサイトで確認する必要があります。
そのようにして自分の環境をどうすればいいかという判断をしていくのです。
今回の場合、Pythonに関してはM1向けのバイナリを使うのをあきらめて、Intel向けのバイナリを使った方がいいだろうな、とは思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。