In a 5-quart Dutch oven or saucepot, cook bacon over medium heat until browned. Remove bacon to paper towels to drain; crumble.
Discard all but 2 tablespoons bacon fat in Dutch oven. Add carrots, celery (or fennel), and onion, and cook until lightly browned, 6 to 8 minutes, stirring occasionally. Add potatoes, clam juice, chicken broth, and bay leaf; heat to boiling. Reduce heat to low; cover and simmer 10 to 15 minutes until vegetables are tender.
Add cod; cook, covered, 2 to 5 minutes until fish flakes easily when tested with a fork. Carefully stir in half-and-half; heat through. Discard bay leaf. Serve soup with crumbled bacon.